Topic PHP : exploitation SQL ( ce topic reste ouvert a d'autre questions toujours en PHP ... )

Bonsoir a tous ( 3ème post sur le sujet :P).
Je code un livre d’or qui prepare un forum car un livre d’or …
seulement, je n’arrive pas a ranger les données dans un tableau ( snif ).
voici le code :

<?PHP $db = mysql_connect('sql.free.fr','login','pass');mysql_select_db('powerusers',$db); $sql = 'SELECT * FROM book'; $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); while($data = mysql_fetch_row($req))   {?>                    
<? =$data['pseudo'] ?><? =$data['titre'] ?><? =$data['date'] ?><? =$data['ID'] ?>
<? =$data['commentaire'] ?>
<?  }    mysql_close();  ?>
mais ça ne marche pas trop ... j'ai donc decidé d'essayer un bete echo a chaques lignes ( presque ) voici le lien [url="http://powerusers.free.fr/book/"]voici le lien[/url] . bon on fermera les yeux sur le changement radical de design ( y en a plein != .. faudra que je refasse [img]style_emoticons/<#EMO_DIR#>/smile.gif[/img] seul l'index est presque presentable ). notons que je n'ai pas encore utilisé les HTML entities ( je sais pas trop ou les mettre : a la page qui insert dans mysql, ou a la lecture ?) la page livre.htm c'est le formulaire. commenter, c'est l'envoi ( + include futur de la page lire.php qui comme son nom l'indique sert a lire. read c'est pour les tests. ) ça serait sympa un coup de pouce siouplait [img]style_emoticons/<#EMO_DIR#>/smile.gif[/img] 

je préconise un mysql_fetch_array plutot qu’un mysql_fetch_row mais je peux me planter  : j’ai meme pas lu ton post jusqu’au bout. Il est tard, je suis fatigué et mon chat me réclame.

Antoine

j’ai essayé aussi le fetch-array, en vain

? =$data['ID'] ?
Pas tout lu non plus, mais je vois pas a quoi servent tes "=" ca serai pas ca qui fait tout merder?

Step 1 : JAMAIS de fetch_array. Toujours fetch_row. Pourquoi ? D’une part parce que le code est clair et lisible (enfin, moi ID,book,author, ca me parle plus que 0,1,2). D’autre part si demain pour une raison x,y,z, une colonne est rajouté ou l’ordre inversé, tout est a corriger.

Step 2 : Est ce que tu es sur de pas te gourrer dans le nom de tes colonnes ?
Si oui, essaye avec ca :

$sql = ‘SELECT * FROM book WHERE 1’;

(Je sais plus a quelle occasion ca m’a résolu un probleme ca)

Sinon, pour vérifier que t’a bien les données dedans, rajoute un print_r($data); dans ta boucle. Il te filera le nom de toutes les colonnes. Si ca ne marche pas non plus… Je sais pas trop

[quote]Step 1 : JAMAIS de fetch_array. Toujours fetch_row. Pourquoi ? D’une part parce que le code est clair et lisible (enfin, moi ID,book,author, ca me parle plus que 0,1,2). D’autre part si demain pour une raison x,y,z, une colonne est rajouté ou l’ordre inversé, tout est a corriger.

Heu non pas du tout. Quand tu utilise fetch_Array tu peux faire:

[quote]while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf(“ID: %s  Name: %s”, $row[“id”], $row[“name”]);
}
Qui est quand meme sacrement pratique.

Ce message a été édité par GloP le 21/02/2004

Oui et si en plus tu te fends d’un petit extract(), les champs te seront directement accessibles par leur petit nom, essaye donc le code ci-dessous :

<?php /* ... */ while($data = mysql_fetch_array($req)) { extract($data); ?>                          
<?=$pseudo?><?=$titre?><?=$date?><?=$ID?>
<?=$commentaire?>
 <?php } /* ... */ ?> [/quote]C'est quand même plus joli que les $data[$trucmachinchouette] [img]style_emoticons/<#EMO_DIR#>/wink.gif[/img]

Merci a tous, je teste et j’edite ( car on dit joujours editer ).

edit : Glopp j’ai vu un truc de ce genre sur phpdebutant je crois.
mais c’est quoi %s ?
c’est comme en C ? ( chaine de caractere ? )…

edit 2 : apres un premier test, ta solution ne marche pas neflands . j’ai le meme rendu que ce que j’avais cad : le bon tableau avec “” dans chaques cellules.
edit3: Glopp : idem
[i]edit4: Bishop : le select * from book where 1 change rien

Va -t- on y arriver ??? lol ![/i]
C’est vraiment bizard … j’ai toujours les meme resultats …
Double hein ? ( cf : ISS ^^)

Ce message a été édité par fser le 21/02/2004

Si ça ne marche toujours pas, c’est que l’erreur ne vient pas de ce bout de code.

Vérifie donc :

  1. que les noms des champs (pseudo, titre etc.) soient correctement orthographiés, respect des majuscules/minuscules de rigueur ;
  2. que le nom de la table soit correct aussi ;
  3. que ta requête ait été bien comprise (un petit 
$num_rows = mysql_num_rows($req);
pour vérifier que la réponse comporte plus de zéro rangées) ; 4) que la connection/selection de la base de données se soit bien passée ; 5) que le moteur PHP soit actif sur ta bécane de test ; 6) que la page que tu as corrigée et la page que tu visualises sur ton navigateur soient bien les mêmes ; ... 7) que ton PC soit bien allumé

Enfin bref : débugge le reste, parce que mon bout de code est fonctionnel pour peu que le reste le soit : il vient d’un copier-coller de mon propre site.

Ce message a été édité par neflands le 21/02/2004

Vous pourriez visiter ma page wiki et ainsi repondre à quelques questions posées SVP …
Sur cette page ou celle du topic directement !

undefined
Ce message a été édité par fser le 23/03/2004

ça marche ça marche mon livre d’or ^^
http://powerusers.free.fr/book/livre.htm

[quote]ça marche ça marche mon livre d’or ^^
http://powerusers.free.fr/book/livre.htm[/quote]je t’ai pris au mot à propos… Faudrais que t’ailles faire du nettoyage dans ta bdd

Merci, mais je savais pertinament que j’avais pas encore sécurisé ça mdr !
je m’attendai donc a un truc du genre
sinon tu pourrai pas m’aider
cf : topic PHP et JS :stuck_out_tongue:
http://powerusers.free.fr/textbox/
merci de ta preuve !!
A bientot !
et pis du coups, je sais plus ce que je voulais dire /

Edit : Comment je pourrai faire pour que par exemple toute les 10reponses, il cree une nouvelle page qui affiche 10autres etc …

Ce message a été édité par fser le 23/03/2004
Ce message a été édité par fser le 24/03/2004

Y’a un truc que j’ai pas réussi à trouver sur php.net.
Quelque’un pourrait expliquer ce qu’est cette condition ?if (!$plop) {}
C’est impossible à trouver par un moteur de recherche vu que ça n’est que de la ponctuation …
Merci.

Fonction non.

Si pas (plop) alors tourne la manivelle