PHP et Mysql : ou sont les erreurs ? [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005
-
Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005
-
Bonjour, j'essai de faire un script en PHP, mais je rencontre plusieurs erreurs.

Tout d'abord, pouvez-vous me dire ce qui ne va pas ici :

<select name="categorie" id="categorie">
<option></option>
<?php
include("config.php"); //avec à l'intérieur les variables $serveur, $utilisateur etc...


@mysql_connect($serveur,$utilisateur,$mdp) or die ("Echec de connexion au serveur");
@mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnée");
$requete = "SELECT Categorie FROM gestion_categories order by 'Categorie'";
$result = mysql_query($requete)
while ($resultats = mysql_fetch_array($result))
{
echo"<option value='$resultats[ID]'>'$resultats[Categorie]'</option>";
}
mysql_close
?>
</select>

Ainsi que les erreurs qu'il existe peut-être dans la portion de code suivante :

include("config.php"); //il y a à l'intérieur les variables $serveur,$utilisateur etc...
@mysql_connect($serveur,$utilisateur,$mdp) or die ("Echec de connexion au serveur");
@mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnée");


if (empty($categorie)) {
$new_cat = "INSERT INTO gestion_categories (Categorie) VALUE ('$new_categorie')";
$requete1 = mysql_query($new_cat);
}


$new_dossier = "INSERT INTO gestion_dossiers (IDcategorie, Titre, CodeHTML) VALUES ('$categorie', '$titre', '$codeHTML')";
$requete2 = mysql_query($new_dossier);
mysql_close

Je précise que je débute en PHP donc il y a pas mal de choses que je ne connais pas.

Merci d'avance.

10 réponses

Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005

C'est bon, j'ai trouvé la solution, en fait je n'utilisais qu'une seule variable $resultat alors qu'après je réutilisais le même nom de variable avec elle même comme argument de la valeur dans la boucle.


Il fallait utiliser 2 variables :


<?php
include("config.php");


@mysql_connect($serveur,$utilisateur,$mdp) or die ("Echec de connexion au serveur");
@mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnée");
$requete = "SELECT Categorie FROM gestion_categories order by 'Categorie'";
$resultat = mysql_query($requete);
while($result = mysql_fetch_array($resultat))
{
echo "<option value='$result[ID]'>$result[Categorie]</option>";
}
mysql_close();
?>

Merci quand même de vos réponses qui m'ont permis de corriger des erreurs.
Messages postés
42
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
15 septembre 2005

Rhaa mais codez propre voyons !

S'il y a des erreurs de PHP quelles sont-elles ? Sinon je te suggère de remplacer ceci :


mysql_query( $requete );


par ceci :


mysql_query( $requete ) or die( mysql_error() );


Ceci te sera grandement utile pour débugguer tes requètes MySQL.
Messages postés
25
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
10 août 2005

Slt,




Déjà remplace les " par des ', c'est plus rapide



Ta fonction mysql_close n'est pas bonne.

On fait comme ça :

mysql_close();

pour fermer une connection MySQL.

De préférence aussi fais ça dans ta boucle :



while($resultat = mysql_fetch_array($result))

{?>

<option value="<?php $resultat['ID'];?><?php echo $resultat['Categorie'];?></option>

<?php

}

mysql_close();

?>

</select>



Voila bonne soiree
Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005

Merci de vos réponses, mais j'ai toujours une erreur qui est la suivante :

Parse error: parse error, unexpected T_WHILE

On dirait que le while n'est pas bon.

Comment cela se fait-il ?
Messages postés
25
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
10 août 2005

remplace mysql_fetch_array($result)) par

mysql_fetch_array($resultat))
Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005

En fait, j'ai réussi à supprimer les erreurs qui se trouvaient dans la 2ème portion de code comme ceci :

include("config.php");


@mysql_connect($serveur,$utilisateur,$mdp) or die ("Echec de connexion au serveur");
@mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnée");


if (empty($categorie)) {
$new_cat = "INSERT INTO gestion_categories (Categorie) VALUES ('$new_categorie')";
$requete1 = mysql_query($new_cat);
}


$new_dossier = "INSERT INTO gestion_dossiers (IDcategorie, Titre, CodeHTML) VALUES ('$categorie', '$titre', '$codeHTML')";
$requete2 = mysql_query($new_dossier);

mysql_close();

Ensuite, pour le code que tu avais mis Dave73, il y avais des erreurs de syntaxe, c'est donc passé quand j'ai mis ça :

<select name="categorie" id="categorie">
<option></option>
<?php
include("config.php");


@mysql_connect($serveur,$utilisateur,$mdp) or die ("Echec de connexion au serveur");
@mysql_select_db("$bdd") or die("Impossible de se connecter à la base de donnée");
$requete = "SELECT Categorie FROM gestion_categories order by 'Categorie'";
$resultat = mysql_query($requete);
while($resultat = mysql_fetch_array($resultat))
{
echo "<option value='$resultat[ID]'><$resultat[Categorie];</option>";
}
mysql_close();
?>
</select>

Par contre, il reste tout de même une erreur dans cette requète Mysql, mais je ne trouve pas où.

Si quelqu'un l'a vu merci.


Au fait Isoth0p je n'ai pas encore fait or die("
Messages postés
25
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
10 août 2005

Teste dans PHPmyAdmin cette requete

SELECT Categorie FROM gestion_categories order by Categorie
Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005

Je l'ai testée, et elle fonctionnne.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
??



je reve...





Un conseil, apprends a coder proprement comme on te l'a suggere.

Par exemple, explique moi a quoi servent tes @ ? Est-ce que tu as une raison valable pour les utiliser?

Ensuite, on t'a donne de bons conseils, les guillemets par
exemple...comment ecrire du html...et meme du php. Je pense a tes
attributs html, et au non respect de l'ecriture correcte de la clef
d'un tableau associatif en php.

Bref...

Dommage que tu ne suives pas les bons conseils qui t'ont ete donnes, a
mon sens, et tu auras de nouveaux des erreurs tot ou tard a cause de ca.
Messages postés
8
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
11 juin 2005

Les @ servent à éviter qu'une erreur s'affiche lorsqu'une requète comporte des erreurs. C'est vrai qu'ils ne sont pas nécessaires.

Ensuite pour les guillemets, utiliser ' au lieu de " car c'est plus rapide. Mais plus rapide à quoi, à écrire ? Je ne vois pas la différence, par contre si cela est vraiment mieux c'est sur que je fais une erreur.

Après, j'ai écris comme ceci :

echo "<option value='$result[ID]'>$result[Categorie]</option>";

Et non comme tu me l'a indiqué, c'est à dire comme cela :

<option value="<?php $resultat['ID'];?>"><?php echo $resultat['Categorie'];?></option>

Tout simplement car c'est plus léger de ma façon, et surtout car tu as fait des erreurs (en rouge) et que je n'avais pas l'envie de les corriger, j'ai alors tout simplement repris l'écriture que j'avais déjà faite qui elle n'en comportait pas (tout du moins pas dans sa forme, c'était juste les variables).
Par contre il est vrai que dans certains cas il est mieux d'utiliser cette méthode pour ne pas être embetté dans l'ouverture et la fermeture de guillemets avec ceux de echo "";

Je ne me suis pas servi de cette méthode mais ça ne veut pas dire que je n'ai pas tenu compte de vos conseils.

a++