PHP et Mysql : ou sont les erreurs ?

Résolu
cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005 - 10 juin 2005 à 17:49
cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005 - 11 juin 2005 à 13:58
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

cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005
11 juin 2005 à 10:30
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.
3
Isoth0p Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 15 septembre 2005
10 juin 2005 à 20:15
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.
0
cs_Dave73 Messages postés 25 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 10 août 2005
10 juin 2005 à 20:15
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
0
cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005
10 juin 2005 à 21:14
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Dave73 Messages postés 25 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 10 août 2005
10 juin 2005 à 21:22
remplace mysql_fetch_array($result)) par

mysql_fetch_array($resultat))
0
cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005
10 juin 2005 à 23:57
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("
0
cs_Dave73 Messages postés 25 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 10 août 2005
11 juin 2005 à 08:19
Teste dans PHPmyAdmin cette requete

SELECT Categorie FROM gestion_categories order by Categorie
0
cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005
11 juin 2005 à 10:14
Je l'ai testée, et elle fonctionnne.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 juin 2005 à 13:11
??



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.
0
cs_hitman06 Messages postés 8 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 11 juin 2005
11 juin 2005 à 13:58
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++
0
Rejoignez-nous