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

cs_hitman06 8 Messages postés mercredi 1 décembre 2004Date d'inscription 11 juin 2005 Dernière intervention - 10 juin 2005 à 17:49 - Dernière réponse : cs_hitman06 8 Messages postés mercredi 1 décembre 2004Date d'inscription 11 juin 2005 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
cs_hitman06 8 Messages postés mercredi 1 décembre 2004Date d'inscription 11 juin 2005 Dernière intervention - 11 juin 2005 à 10:30
3
Merci
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.

Merci cs_hitman06 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_hitman06
Isoth0p 42 Messages postés jeudi 17 juin 2004Date d'inscription 15 septembre 2005 Dernière intervention - 10 juin 2005 à 20:15
0
Merci
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.
Commenter la réponse de Isoth0p
cs_Dave73 25 Messages postés jeudi 5 mai 2005Date d'inscription 10 août 2005 Dernière intervention - 10 juin 2005 à 20:15
0
Merci
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
Commenter la réponse de cs_Dave73
cs_hitman06 8 Messages postés mercredi 1 décembre 2004Date d'inscription 11 juin 2005 Dernière intervention - 10 juin 2005 à 21:14
0
Merci
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 ?
Commenter la réponse de cs_hitman06
cs_Dave73 25 Messages postés jeudi 5 mai 2005Date d'inscription 10 août 2005 Dernière intervention - 10 juin 2005 à 21:22
0
Merci
remplace mysql_fetch_array($result)) par

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

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



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.
Commenter la réponse de malalam
cs_hitman06 8 Messages postés mercredi 1 décembre 2004Date d'inscription 11 juin 2005 Dernière intervention - 11 juin 2005 à 13:58
0
Merci
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++
Commenter la réponse de cs_hitman06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.