la commande mysql-affected-rows

Répondre
chi206
le 30/10/2008 à 16:45
chi206
voila j'ai un probleme avec la commande mysql-affected-rows:
je voudrai que la commande me renvoi toute la ligne pa seulement le nombre de lignes affectés.et lautre probleme c'est que lorske je l'inserre dans le fichier stat.txt je voudrai a chaque fois inserrer audebut du fichier sans effacer les anciens ajouts.
voici mon code:

  1. <?php
  2. // on se connecte à MySQL
  3. $db = mysql_connect('localhost', 'root', '');

  4. // on sélectionne la base
  5. mysql_select_db('client',$db);

  6. // on crée la requête SQL
  7. $sql = 'SELECT nom,prenom,statut,date FROM famille_tbl';

  8. // on envoie la requête
  9. $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());



  10. $sqll = "UPDATE famille_tbl SET prenom = 'chi255' WHERE id=6";
  11. $req1 = mysql_query($sqll) or die('Erreur SQL !<br>'.$sqll.'<br>'.mysql_error());

  12. $fp = fopen("stat.txt","r+"); //ouvre le fichier
  13. fputs($fp,mysql_affected_rows()); //on ecrit ds le fichier le nbr d'ajout
  14. fseek($fp,0); //on se place ds le fichier
  15. fclose($fp); //on ferme le fichier

  16. //printf ("Lignes modifiées : %d\n", mysql_affected_rows());


  17. // *on fait une boucle qui va faire un tour pour chaque enregistrement
  18. while($data = mysql_fetch_assoc($req))
  19. {
  20. //on affiche les informations de l'enregistrement en cours
  21. echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')';
  22. echo ' <i>date de naissance : '.$data['date'].'</i><br>';
  23. }

  24. // on ferme la connexion à mysql
  25. mysql_close();
  26. ?>


Merci d'utiliser le BB-Code...
LA GLOBULE
le 30/10/2008 à 18:18
LA GLOBULE
Tu dois faire une requête SELECT avec le même WHERE que ton UPDATE, et ce, avant de faire l'UPDATE. La, tu auras toutes les lignes qui se verront modifier par ton UPDATE.

Ensuite, pour ton fichier, le plus simple c'est de carrément réécrire le fichier. Tu vas galérer pour "décaler" ton texte vers le bas.
chi206
le 31/10/2008 à 10:56
chi206
si jai bien compri j doi faire un select * from famille_tbl where id = 6 c ca?ca me donnera apres avec mysql-affected_rows la ligne ki a été modifié ?
LA GLOBULE
le 31/10/2008 à 11:06
LA GLOBULE
Non, mais oublie mysql_affected_rows, ca ne te sert à rien cette fonction. Elle donne juste le nombre de ligne modifiées, pas les lignes elles même.

Pour avoir les lignes modifiées, après ton UPDATE, tu lances ton SELECT ... WHERE id=6 et tu auras toutes les lignes qu'aura modifié ton UPDATE.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours