bigornot Posté 31 Mars 2004 Posté 31 Mars 2004 @mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de donnÈes");_AT_mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnÈes");$query = "SELECT * FROM $table ORDER BY id DESC LIMIT 1";$result = mysql_query($query) or die (rate);$nb = mysql_fetch_array($result);?> ci dessus, mon code ci dessous, ma reponse Array ci dessous, la partie dans le code html ( c'est pt'etre ca:!: ) <?phpecho $nb?> qu'est ce
Beatnykk Posté 31 Mars 2004 Posté 31 Mars 2004 (modifié) "nb" est l'agencement d'un resultat de recherche "result", effectuée dans la table sql "table", consistant au passage à tout contenu "*" dans l'ordre rangé croissant par attributs "id", dans la base de données "bdd" connectée sur le serveur "host" à l'aide du login "user" et du mot de passe "pass". tu n'as plus qu'à remplacer tes absolus (variables aux valeurs connues comme l'ip du serveur à la place de "host", ton login, etc.) par les valeurs en vigueur et les variables (les noms arbitraires que tu donnes à tes recherches, tes resultats) par ce que tu veux selon ta méthode et pour bien t'en rappeller. à la fin en html tu affiches ton résultat retrouvé dans l'état actuel sous "nb" avec le code : <?php echo $nb ?> qui correspond dans un document nomme *.php à l'ouverture d'un tag php (<?) puis la demande d'écrire quelquechose (echo) qui est en l'occurence la valeur du résultat de la recherche ($nb), puis fermer le tag php (?>) pour revenir à l'html. tu pouvais aussi ecrire en html : <p>le resultat de ma recherche est<br><?=$nb?> qui revient presque au même. nb : tu peux aussi fixer les valeurs des variables absolues dans une entête rechargée à chaque début de document en ayant besoin, histoire de renseigner le document sur les élèments qu'il ne pourra pas deviner seul (créer des liaisons de renseignement entre tes docs, comme pour une feuille de style). cette "feuille de variable" peut être appellée par un include et elle consiste en du code php du type : $table='nom_de_ma_table'; n'oublie pas le ";" à chaque fin de commande n'oublie pas de repenser la totalité du document et de vérifier (au travers des includes, de l'html) que ces additions doivent toujours laisser les php entre des "<?" et des "?>" sinon l'explorateur au final aura un bordel incompréhensible et les erreurs arrivent vite (les messages de débogage du serveur te disent à quelle ligne l'erreur intervient cependant). Modifié 31 Mars 2004 par Beatnykk
Anonymus Posté 31 Mars 2004 Posté 31 Mars 2004 @mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de donnÈes"); _AT_mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnÈes"); $query = "SELECT * FROM $table ORDER BY id DESC LIMIT 1"; $result = mysql_query($query) or die (rate); $nb = mysql_fetch_array($result); ?> ci dessus, mon code ci dessous, ma reponse Array ci dessous, la partie dans le code html ( c'estp t'etre ca:!: ) <?php echo $nb ?> qu'est ce En bref, l'erreur : $nb te renvoie un Array, autrement dit, un tableau. Il faut que tu fasses : while ($nb=mysql_fetch_array($result)){ echo "<br>".$nb[0]; echo "<br>".$nb[1]; echo "<br>".$nb[2]; // etc, etc... } Mais il existe egalement une erreur, apparemment, ici : $result = mysql_query($query) or die (rate); A moins que 'rate' soit une constante (avec DEFINE('rate','...') sinon, il manque probablement un $, soit : $result = mysql_query($query) or die ($rate); Anonymus.
bigornot Posté 31 Mars 2004 Auteur Posté 31 Mars 2004 "nb" est l'agencement d'un resultat de recherche "result", effectuée dans la table sql "table", consistant au passage à tout contenu "*" dans l'ordre rangé croissant par attributs "id", dans la base de données "bdd" connectée sur le serveur "host" à l'aide du login "user" et du mot depass "pass". tu n'as plus qu'à remplacer tes absolus (variables aux valeurs connues comme l'ip du serveur à la place de "host", ton login, etc.) par les valeurs en vigueur et les variables (les noms arbitraires que tu donnes à tes recherches, tes resultats) par ce que tu veux selon ta méthode et pour bien t'en rappeller. euh, desolé, j'ai pas bien compris : tu n'as plus qu'à remplacer tes absolus (variables aux valeurs connues comme l'ip du serveur à la place de "host", ton login, etc.) par les valeurs en vigueur et les variables (les noms arbitraires que tu donnes à tes recherches, tes resultats) par ce que tu veux selon ta méthode et pour bien t'en rappeller. c-a-d ?? moi, ce que je voulais, c'est afficher 1 message de ma table, qui apparaitra comme dernier mess posté ...
bigornot Posté 31 Mars 2004 Auteur Posté 31 Mars 2004 euh .. rate, c'est le petit mot que je me suis choisi pour toutes mes erreurs ... pour la petite histoire, avant, c'était : raté et ppuis, j'en ai eu marre avec l'accent sinon, je vais essayer ton "truc"
bigornot Posté 31 Mars 2004 Auteur Posté 31 Mars 2004 et je mets : while ($nb=mysql_fetch_array($result)){ echo "<br>".$nb[0]; echo "<br>".$nb[1]; echo "<br>".$nb[2]; // etc, etc... } à la place de $nb ??? dsl, je connais pas .$nb[1];
Anonymus Posté 31 Mars 2004 Posté 31 Mars 2004 On recommence : Pour le die(), il te faut marquer : die("Raté"); Pour le $nb, il ne retourne pas un seul mot, mais un tableau, c'est à dire tous les champs de ta table (d'où le SELECT * qui signifie Selectionner tous les champs). Donc, lorsque tu fais $nb = mysql_fetch_array, il te faut aussi appeler les champs par leur nom. Par exemple, pour appeler le champ id, tu feras : while($nb = mysql_fetch_array($result)){echo $nb['id'];} Pour afficher le champ 'id', un champ 'nom', un autre 'prenom' et un autre 'adresse', tu feras : while($nb = mysql_fetch_array($result)){echo "<br>".$nb['id'];echo "<br>".$nb['nom'];echo "<br>".$nb['prenom'];echo "<br>".$nb['adresse'];} Anonymus.
Beatnykk Posté 31 Mars 2004 Posté 31 Mars 2004 bah oui bah on choisit pas au hasard comme ça, il faut fixer. en cas d'impossibilité le serveur affiche un message : ...or die ('raté'); ou bien la valeur d'une variable ...or die ($raté); que tu as fixé plus haut dans le document ou sur une autre page incluse (par include) plus haut dans le doc ou dans une variable global (fixée ailleurs et appellée plus haut) d'une façon équivalente à : $raté='message';
bigornot Posté 31 Mars 2004 Auteur Posté 31 Mars 2004 ouiiiiiii ! j'ai compris ! oki ! merci ! ca m'étonne pas que j'ai jamais reussi a faire un vrai script php ... j'avais raté la moitié !
Anonymus Posté 31 Mars 2004 Posté 31 Mars 2004 Prenons une table personne : id | nom | prenom | age | 1 | gates| bill | 25 | 2 | clinton| bill | 32 | En fait, quand tu fais SELECT * from personne tu demandes les champs id, nom, prenom, age. Cela revient à faire : SELECT id,nom,prenom,age FROM personne Donc, il faut les rappeler par leur nom. Lorsque tu fais ta requète, (avec mysql_query), le base stocke le résultat dans une table temporaire. Il te faut donc rappeler la table temporaire, pour retourner les résultats. Pour cela, tu fais mysql_fethc_array. La synthaxe est : tant que $row = mysql_fetch_array (de la table temporaire de 'result') donc : tant qu'il y a des lignes (meme s'il n'y en a qu'une ) donc : while ($nb = mysql_fetch_array($result)){ /* Au niveau du echo, tu as le choix entre : - demander le champ '1' (dans ce cas, c'est $row[1] - demander le champ 'id' (dans ce cas, c'est $row['id'] */ // on choisit les noms de champs echo $nb['id']; echo $nb['nom']; echo $nb['prenom']; echo $nb['age']; } Le point, c'est pour différencier les variables php des mots html. Ainsi, tu peux écrire : echo "nom $row[1] "; echo "nom ".$row[1]; echo "nom ".$row[1].""; ou ?>nom<? echo $row[1]; ?> Voilà, Anonymus.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant