bigornot Posté 18 Avril 2004 Posté 18 Avril 2004 voila, j'ai un petit parse error on line 38, la routine ! sauf que, je n'en ai que 37, des lignes !!!!!! il y a un petit probleme, non ? peut etre l'hebergeur ? j'ai free voila ! @+
Berberber Posté 18 Avril 2004 Posté 18 Avril 2004 (modifié) j'avais mal compris la question Modifié 18 Avril 2004 par Berberber
Dams Posté 18 Avril 2004 Posté 18 Avril 2004 Ce genre d'erreur a souvent pour cause un } qui manque... Php s'en rend compte a la fin. Il se dit alors tient me manque un } !! Erreur a la ligne 38 (Qui n'existe pas mais devrait exister )
Anonymus Posté 18 Avril 2004 Posté 18 Avril 2004 Voilà. Sinon, il peut manquer aussi une parenthèse non fermée, un double quote " ou tout autre caractère destiné à fermer une fonction, une donnée, etc.. Vérifies la synthaxe de ton programme, et pour ceci, appliques ce procédé : Tu mets les lignes en commentaire, les unes après les autres, en testant à chaque fois ce que ca donne. Ainsi, ton erreur sera mise en commentaire, donc desactivée, et cela te donnera la ligne où elle se situe. Anonymus.
Dams Posté 18 Avril 2004 Posté 18 Avril 2004 Pour les caractères " et ' utiliser un outil d'édition comme phpedit te permets d'éviter ce genre de problèmes. En effet phpedit utilise une colorisation syntaxique adapté au php qui te permettra en un coup d'oeil de voir ce genre d'erreurs....
bigornot Posté 18 Avril 2004 Auteur Posté 18 Avril 2004 euh ... oui, mais, j'ai verifié, rien de ce genre ... il n'y a pas d'autres possibilités ??
bigornot Posté 18 Avril 2004 Auteur Posté 18 Avril 2004 <?php$_COOKIE['kool'];session_start();// Démarage de la sessions OBLIGATOIR if(session_is_registered(pseudo)){echo "Votre pseudo :<b>".$_SESSION[pseudo]."</b><br>";}else{echo "$kool";}include("config.php");$link = mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate");_AT_mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate");_AT_mysql_select_db("bdbourgeron");$query = 'SELECT * FROM `messagerie` WHERE destinataire = "$kool" LIMIT 0, 30'; $result = mysql_query($query);$num_rows = mysql_numrows($result);?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title>inscription_login_mysql.php</title> <meta name="author" content="Franck Bourgeron"> <meta name="publisher" content="Franck Bourgeron"> <meta name="generator" content="HTML Creator 3.5.1"></head><body><?phpwhile($num_rows < mysql_numrows($result)){echo "<br><center>De :".$num_rows['envoyeur'];echo "<br><center>A :".$num_rows['date'];echo "<br>Titre :".$num_rows['titre'];echo "<br>Message :".$num_rows['message'];?></body></html> voila pour le code Voila pour la page Merci beaucoup d'avance !! @+
Anonymus Posté 18 Avril 2004 Posté 18 Avril 2004 Remplaces $link = mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate");_AT_mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate"); par $link = mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate"); Remplaces la ligne $query = 'SELECT * FROM `messagerie` WHERE destinataire = "$kool" LIMIT 0, 30'; par $query = "SELECT * FROM messagerie WHERE destinataire = ".$kool." LIMIT 0, 30"; Remplaces : <?phpwhile($num_rows < mysql_numrows($result)){echo "<br><center>De :".$num_rows['envoyeur'];echo "<br><center>A :".$num_rows['date'];echo "<br>Titre :".$num_rows['titre'];echo "<br>Message :".$num_rows['message'];?> par : <?phpwhile($rows = mysql_fetch_array($result)){echo "<br><center>De :".$rows['envoyeur'];echo "<br><center>A :".$rows['date'];echo "<br>Titre :".$rows['titre'];echo "<br>Message :".$rows['message'];}?> Pour info, l'erreur vient du dernier morceau de code : Il manque une } pour fermer la structure de contrôle while : Rappel : while (TRUE){ // code } A+, Anonymus
bigornot Posté 19 Avril 2004 Auteur Posté 19 Avril 2004 ha ! oui, voila, ca marche presque, mais, il me met : 1) le or die 2) une erreur sur la ligne en dessous : mysql_numrows(mysql_query("SELECT * FROM messagerie WHERE destinataire ='.$kool.' LIMIT 0, 30",mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate"))) or die ("nononon")
Jez Posté 19 Avril 2004 Posté 19 Avril 2004 je mettrais ".$kool." non? avec des simple quote tu fermes pas ta chaine je crois, donc il doit prendre les . comme faisant partie de la requete
Anonymus Posté 19 Avril 2004 Posté 19 Avril 2004 Effectivement, avec de simples quote, ca genère une erreur. En fait, dans la mesure où il n'arrive pas à se connecter à la base (die... veut dire qu'il n'arrive pas à se connecter), la requète que tu essaie de faire ne peut pas marcher (puisque pas d'accès à la base.). Le problème, aussi, c'est que tu changes les lignes que je te donnes. A chaque fois, on ne peut te résoudre les erreurs, parce qu'on ne sait pas ce que tu as mis. Pour info, cette ligne est fausse : mysql_numrows(mysql_query("SELECT * FROM messagerie WHERE destinataire ='.$kool.' LIMIT 0, 30",mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate"))) or die ("nononon") Mets : $l = mysql_connect($db_chemin,$db_user,$db_pass) or die ("rate");$q = "SELECT * FROM messagerie WHERE destinataire ='.$kool.' LIMIT 0, 30"$r = mysql_query($q,$l);$n = mysql_numrows($r);echo "Nombre de lignes =".$n; Décomposes tes variables/fonctions/instructions !! On agglomère lorsque ca marche, pas quand il y a des erreurs. De plus, au niveau optimisation : Si tu demandes tous les champs d'une table, tu te retrouves oblilgé de dépiler entièrement une table de ta base. Pour faire quoi ?Chercher le nombre de lignes ?? Il te faut réfléchir un petit peu. Dépiler un seul champ (par exemple l'id_table ou 'nom'), et compter le nombre d'occurences. Cela suffira largement ! A condition que ce champ ne soit pas NULL, evidement. Nico.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant