Aller au contenu

parse error, sur la ligne 38 ... j'en ai 37 !


Sujets conseillés

Posté

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 !

@+

Posté

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 :D )

Posté

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.

Posté

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....

Posté

<?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>
<?php
while($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 !!

@+

Posté

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 :

<?php
while($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 :

<?php
while($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

Posté

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")

Posté

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

Posté

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.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...