Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1690 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP/MYSQL] changer juste une valeure d'un bd

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP/MYSQL] changer juste une valeure d'un bd

n°1292970
hugoOo
laisse pas dépasser ton pixel
Posté le 26-01-2006 à 19:01:17  profilanswer
 

bonjour, :hello:  :hello:  :hello:  
alors voila je crée en ce moment un script de blog, les données de l'admin du blog sont rentrée dans une base sql mais je rentre dans une premiere page le titre, la date et le texte de l'article puis dans une seconde page j'upload la photo, pour pouvoir utiliser facilement cette photo par la suite je voudrai que l'url se mette dans ma table à la derniere ligne c'est à dire à la ligne du commentaire qui vien juste d'etre créé.

Citation :

// on écrit la requête sql
    $sql = "INSERT INTO essai(id, date, titre, article, photo) VALUES('', '','','','$savefile')";
     
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    mysql_close();  // on ferme la connexion


voila ce que j'ai fait mais cela me donne trois article: 1er: titre date et texte sont ok
                                                                        2eme: tout est vide
                                                                        3eme: seulement la photo
 
voila, quelqu'un aurait t-il une idée?

mood
Publicité
Posté le 26-01-2006 à 19:01:17  profilanswer
 

n°1293002
afbilou
pouet your life
Posté le 26-01-2006 à 20:00:08  profilanswer
 

il faut utiliser UPDATE pour modifier un champ et utiliser la clause WHERE pour definir quelle entrée modifier dans la base :s

n°1293005
afbilou
pouet your life
Posté le 26-01-2006 à 20:01:40  profilanswer
 

De plus il n'y a pas de notion de "derniere ligne" avec SQL (et donc mySQL)

n°1293009
hugoOo
laisse pas dépasser ton pixel
Posté le 26-01-2006 à 20:12:29  profilanswer
 

avec update d'accord mais si je met quelque chose du genre :

Citation :

UPDATE matable  photo='$savefile' WHERE id= ??????


je met quoi dans id??

n°1293011
afbilou
pouet your life
Posté le 26-01-2006 à 20:16:55  profilanswer
 

update matable set mon_champ='une valeur', un_autre_champ='une autre valeur ou la meme pourquoi pas ... car apres tout tu fais bien ce que tu veux et c'est tant mieux !' where id='peut-etre l'id de la ligne que tu as insérée dernierement :p';
 
Tout de même je suis etonné de trouver si peu d'intuition a défaut de volonté pour se documenter :s

Message cité 1 fois
Message édité par afbilou le 26-01-2006 à 20:18:59
n°1293034
hugoOo
laisse pas dépasser ton pixel
Posté le 26-01-2006 à 21:18:51  profilanswer
 

afbilou a écrit :

update matable set mon_champ='une valeur', un_autre_champ='une autre valeur ou la meme pourquoi pas ... car apres tout tu fais bien ce que tu veux et c'est tant mieux !' where id='peut-etre l'id de la ligne que tu as insérée dernierement :p';
 
Tout de même je suis etonné de trouver si peu d'intuition a défaut de volonté pour se documenter :s


merci mais sa je le sais je précise ma question : Comment fai t'on pour mettre l'id que j'ai inséré dernierement?

n°1293036
afbilou
pouet your life
Posté le 26-01-2006 à 21:22:39  profilanswer
 

Passage par url.
Recuperation apres validation du formulaire precedent.
Session.
Voila pour les methodes envisageables :/
 
un exemple :
 
page1.php : premier formulaire avec action="page2.php" method="post"
page2.php : sauvegarder les valeurs du formulaire precedent avec des session ou champ input type="hidden", puis formulaire d'upload de la foto avec action->page3.php
page3.php : recuperation de toutes les données et insertion en base avec insert.


Message édité par afbilou le 26-01-2006 à 21:26:27
n°1293042
hugoOo
laisse pas dépasser ton pixel
Posté le 26-01-2006 à 21:56:22  profilanswer
 

là tu m'aide merci! en abusant de ta gentillesse j'aurai une autre petite question à te poser: j'ai un formulaire d'identification pseudo et motdepasse qui renvoie vers un script qui verifie le mot passe et renvoi vers une page différente selon le pseudo entré: mon script:  

Citation :

<?php
function verification($nom,$pass){
  // Connexion SQL
  $dbhote = 'lalala';
  $dbuser = 'lalalal';
  $dbpass = 'lalalala';
  $dbbase = 'lalalalla;
  $link = mysql_connect($dbhote,$dbuser,$dbpasse);
  mysql_select_db($dbbase,$link);
 
  // Création de la requête SQL
  $nom_sql = mysql_real_escape_string($nom) ;
  $pass_sql = mysql_real_escape_string($motdepasse) ;
  $sql ="SELECT * FROM users "  
        . " WHERE pseudo='$nom_sql' AND motdepasse='$pass_sql'" ;
   
  // Exécution de la requête SQL
  $result = mysql_query($sql,$link);
  if(mysql_num_rows($result)>0){
    return TRUE;
  }else{
  return FALSE;
  }
}
?>
<?php
// si on a reçu les données d'un formulaire :
if ( !empty( $_POST['pseudo'] ) && !empty( $_POST['motdepasse'] ) ) {
 
  // on les récupère
  $nom = $_POST['pseudo'] ;
  $motdepasse = $_POST['motdepasse'] ;
 
  // on teste si le mot de passe est valide :
  if ( verification( $nom, $motdepasse ) ) {
    $message = 'Salut $nom, tu as été correctement identifié, tu peux maintenant <a href=$nom"/admin.html">modifier ton lostblog</a>' ;
  } else {
    // sinon on avertit l'utilisateur :
    $message = 'Mauvais mot de passe' ;
    $message .='<a href="auth.php">retour</a>' ;
  }
} else {
  // un des champs n'est pas rempli
  $message = 'le login ou le mot de passe est vide' ;
  $message .='<a href="auth.html">retour</a>' ;
}
?>
<html>
<head><title>Identification</title></head>
<body><p>
<div align="center"<?php echo $message ?></div>
</p></body>
</html>


et voila le sql error:  

Citation :

Warning: mysql_connect(): Access denied for user 'i3911682'@'10.0.5.73' (using password: NO) in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 8
 
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 9
 
Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 12
 
Warning: mysql_real_escape_string(): A link to the server could not be established in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 12
 
Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 13
 
Warning: mysql_real_escape_string(): A link to the server could not be established in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 13
 
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 18
 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/sites/1/ifrance.com/l/o/lostblog/site/verif.php on line 19


voila ce serait trés aimable à toi de m'aider un petit peu! :)

n°1293049
afbilou
pouet your life
Posté le 26-01-2006 à 22:08:49  profilanswer
 

$pass_sql = mysql_real_escape_string($motdepasse) ; --> c'est $pass que tu passes en argument de ta fonction.
 
 

Code :
  1. if(mysql_num_rows($result)>0){
  2.     return TRUE;
  3.   }else{
  4.   return FALSE;
  5.   }


Autant faire bosser mysql avec :
'SELECT count(*) FROM users WHERE pseudo=\'',$nom_sql,'\' AND motdepasse=\'',$pass_sql,'\'' ;
et regarder si le resultat du premier champ (avec mysql_fetch_row par exemple) est > 0
Ca evite le passage d'un grand nombre de données de mysql a PHP pour que ce dernier traite le resultat.


Message édité par afbilou le 26-01-2006 à 22:14:36
n°1293093
mrbebert
Posté le 27-01-2006 à 00:12:01  profilanswer
 

hugoOo a écrit :

merci mais sa je le sais je précise ma question : Comment fai t'on pour mettre l'id que j'ai inséré dernierement?

C'est cette fonction là dont tu as besoin :
http://fr3.php.net/manual/fr/funct [...] ert-id.php
 :??:  

mood
Publicité
Posté le 27-01-2006 à 00:12:01  profilanswer
 

n°1293721
hugoOo
laisse pas dépasser ton pixel
Posté le 27-01-2006 à 18:15:57  profilanswer
 

mrbebert ---> merci pour l'aide mais ma photo ne s'affiche plus quand je met :

Citation :

$sql = "UPDATE essai SET  photo='$savefile' WHERE id='mysql_insert_id()'";

peut tu m'aider?
afbilou----> je suis entrain de regarder ce que tu me dit.

n°1293732
mrbebert
Posté le 27-01-2006 à 18:25:27  profilanswer
 

C'est une fonction PHP [:proy]

n°1293786
hugoOo
laisse pas dépasser ton pixel
Posté le 27-01-2006 à 21:58:51  profilanswer
 

quelqu'un pourrait t'il me dire pourquoi cela ne marche pas?

n°1293964
smaragdus
whores, drugs & J.S. Bach
Posté le 28-01-2006 à 14:04:26  profilanswer
 

hugoOo a écrit :

quelqu'un pourrait t'il me dire pourquoi cela ne marche pas?


tu utilises une fonction directement dans un requete SQL : c'est du grand n'importe quoi.
Solution : ouvre une doc PHP

n°1294007
Dj YeLL
$question = $to_be || !$to_be;
Posté le 28-01-2006 à 15:24:52  profilanswer
 

Tu ferais bien d'apprendre le Php avec un echo "Hello World !"; plutôt qu'avec un blog ...
 
C'est comme pour tout, c'est mieux de commencer par les bases.


---------------
Gamertag: CoteBlack YeLL
n°1294127
hugoOo
laisse pas dépasser ton pixel
Posté le 28-01-2006 à 21:17:31  profilanswer
 

j'ai changer de technique: je recupere d'abord toute les données en les faisant passer de page en page grace a des INPUT TYPE="hidden" puis je les enregistre dans ma table sql, mais le mysqlerror() reste le meme!

n°1294542
omega2
Posté le 30-01-2006 à 11:34:37  profilanswer
 

Est tu sur de tes identifiants de conection à mysql?
T'es sur que ton nom d'utilisateur mysql est "i3911682" et que tu n'as aucun mot de passe à fournir?
 
Ca me paraitrait vraiment bizare qu'un hébergeur comme ifrance laisse une sécurité aussi basse pour la base de donnée fournis à leurs clients.
 
Quand à ta super nouvelle technique, telle que tu la décris, elle est à chié d'autant plus que tout est faisable en une fois à ma conaissance.

n°1294563
hugoOo
laisse pas dépasser ton pixel
Posté le 30-01-2006 à 11:46:48  profilanswer
 

oui j'ai changé j'ai tout fait sur la meme page mais sa ne marche toujours pas: jvé aller voir du coté de mes identifiants et mots de passe!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP/MYSQL] changer juste une valeure d'un bd

 

Sujets relatifs
[MySQL] Exporter la liste des utilisateurs ?transmettre base de données MySQL
[PHP] Probleme avec les espaces [Resolu]PHP Base de données
MySql Update qui update pas...probleme PHP
MySQL/InnoDB: Existe-t-il un moyen de faire un select en cascade ?[PHP] Warning: session_start(): open() failed ...
[PHP/MYSQL] mise en page d'une texte issue d'une bd 
Plus de sujets relatifs à : [PHP/MYSQL] changer juste une valeure d'un bd


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR