Code PhP/SQL basique soucis

Résolu/Fermé
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 - 10 févr. 2010 à 01:14
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 - 10 févr. 2010 à 15:22
Bonjour,
Ne pratiquant que peu souvent le php/sql, je possède un petit soucis avec ce code. Je ne comprend pas pourquoi il ne m'affiche rien :


<?php
if(isset($POST['pseudo'])) {

mysql_connect("localhost", "root", "");
mysql_select_db("realmd");

$comptage = mysql_query("SELECT COUNT(*) AS nbr FROM account WHERE username == $POST['pseudo']);
$result = mysql_fetch_array($comptage);
$resultat = $result['nbr'];

if($resultat == 1) {

$requete = mysql_query("SELECT vote FROM account WHERE username == $POST['pseudo']");
$result2 = mysql_fetch_array($requete)

echo "Le compte ". $POST['pseudo'] ." possède ". $result2['vote'] ." point(s) de vote."

}

else {

echo "Le nom de compte entré n'est pas valide.";

}
}

else {

echo "Saisissez votre nom de compte :";
?>

<form action="infovote.php" method="post">
<p>Nom de compte : <input type="text" name="pseudo"> </p>
<input type="submit" value="Valider" name="Valider">
</form>

<?php } ?>



Merci d'avance, pour vos réponses pertinentes !
A voir également:

14 réponses

Bonjour

Etonnant en effet que ça n'affiche rien. Il devrait y avoir plusieurs messages d'erreur :
. dans les requêtes mysql (clauses WHERE), la comparaison c'est un seul =, pas ==
. les instructions PHP doivent se terminer par ; et tu en as oublié plusieurs (ligne $result2 = et suivante)

Tu devrais tester le résultat des appels à mysql et afficher les messages d'erreur correspondants, ça te dirait tout de suite où tu t'es trompé
0
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 7
10 févr. 2010 à 11:40
Après correction du code : toujours page blanche (je suis sous apache 2 sur un serveur dédié sous linux) :
<?php
if(isset($POST['pseudo'])) {

mysql_connect("localhost", "root", "JcCfmJ54EOx9k9kefmJ5") or die(mysql_error());
mysql_select_db("realmd");

$comptage = mysql_query("SELECT COUNT(*) AS nbr FROM account WHERE username = $POST['pseudo']) or die(mysql_error());
$result = mysql_fetch_array($comptage) or die(mysql_error());
$resultat = $result['nbr'];

if($resultat == 1) {

$requete = mysql_query("SELECT vote FROM account WHERE username = $POST['pseudo']") or die(mysql_error());
$result2 = mysql_fetch_array($requete) or die(mysql_error());

echo "Le compte ". $POST['pseudo'] ." possède ". $result2['vote'] ." point(s) de vote." or die(mysql_error());

}

else {

echo "Le nom de compte entré n'est pas valide.";

}
}

else {

echo "Saisissez votre nom de compte :";
?>

<form action="infovote.php" method="post">
<p>Nom de compte : <input type="text" name="pseudo"> </p>
<input type="submit" value="Valider" name="Valider">
</form>

<?php } ?>
0
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 7
10 févr. 2010 à 13:15
up
0
Trois erreurs dans cette ligne
$comptage = mysql_query("SELECT COUNT(*) AS nbr FROM account WHERE username = $POST['pseudo']) or die(mysql_error());
Il te manque un " à la fin de ta requête et tu as des ' en trop autour de pseudo et il t'en manque autour de $POST['pseudo']

$comptage = mysql_query("SELECT COUNT(*) AS nbr FROM account WHERE username = '$POST[pseudo]'") or die(mysql_error());

Mais tu devrais quand même avoir quelque chose d'affiché. Il y a sûrement un autre problème, je regarde
0

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

Posez votre question
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 7
10 févr. 2010 à 13:43
Toujours rien qui ne s'affiche malgré la correction.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
10 févr. 2010 à 13:43
bonjour,


j'aurais plutôt mis $_POST
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
10 févr. 2010 à 13:45
Salutation,

Si tu vois pas les erreur, c'est que ton serveur web est configurer pour pas les afficher.
Va ton ton fichier php.ini et chercher la ligne: error_reporting =

Tu la remplace par error_reporting = E_ALL et normalement, tout devrai s'afficher
0
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 7
10 févr. 2010 à 13:48
<?php
if(isset($_POST['pseudo'])) {

mysql_connect("localhost", "root", "JcCfmJ54EOx9k9kefmJ5");
mysql_select_db("realmd");

$comptage = mysql_query("SELECT COUNT(*) AS nbr FROM account WHERE username = $_POST['pseudo']");
$result = mysql_fetch_array($comptage);
$resultat = $result['nbr'];

if($resultat == 1) {

$requete = mysql_query("SELECT vote FROM account WHERE username = $_POST['pseudo']");
$result2 = mysql_fetch_array($requete);

echo "Le compte ". $_POST['pseudo'] ." possède ". $result2['vote'] ." point(s) de vote.";

}

else {

echo "Le nom de compte entré n'est pas valide.";

}
}

else {

echo "Saisissez votre nom de compte :";
echo
?>

<form action="infovote.php" method="post">
<p>Nom de compte : <input type="text" name="pseudo"> </p>
<input type="submit" value="Valider" name="Valider">
</form>

<?php
}
?>


Moi aussi j'ai vu l'erreur des $_POST mais même changé toujours le même soucis.
PS : Je vais voir ce que je peux faire pour afficher les erreurs
0
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 7
10 févr. 2010 à 13:53
Du côté de mon php.ini apparemment je n'ai pas de soucis :

error_reporting = E_ALL & ~E_NOTICE


La je ne comprend vraiment plus :)
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
10 févr. 2010 à 13:54
il faut laisser $_POST
verifier que pseudo n'est pas en majuscule
echo "<pre>";print_r($_POST);echo "</pre>";

et essayer ceci car pseudo est sans doute du caractère

$query = "SELECT COUNT(*) AS nbr FROM account WHERE username ='".$_POST['pseudo']."'";
$comptage = mysql_query($query);
$result = mysql_fetch_array($comptage);
$resultat = $result['nbr'];

if($resultat == 1) {
$query = "SELECT vote FROM account WHERE username ='".$_POST['pseudo']."'";
$requete = mysql_query($query);
$result2 = mysql_fetch_array($requete);
0
C'est vrai qu'il faut $_POST
Mais je crois que le fond du problème, c'est que le script ne passe pas par l'interpreteur PHP
Comment fais-tu pour afficher ta page ? Que tapes-tu exactement, et où ça ?
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
10 févr. 2010 à 14:13
Tu peux nous mettre (ou m'envoyer) la structure de la table. Je voudrai tester ton code directement en local, je trouverai peu être ou sa coince.
(un export de la table avec quelque donnée exemple serai parfait)
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
10 févr. 2010 à 14:15
une seule requête peut être suffisante


<?php
if(isset($_POST['pseudo'])) {

mysql_connect("localhost", "root", "JcCfmJ54EOx9k9kefmJ5");
mysql_select_db("realmd");

$query = "select vote from account where username='".$_POST['pseudo']."'";

$comptage = mysql_query($query);
$nblignes=mysql_num_rows($comptage);

if($nbligne == 1) {

echo "Le compte ". $_POST['pseudo'] ." possède ". $comptage['vote'] ." point(s) de vote.";

}

else {

echo "Le nom de compte entré n'est pas valide.";

}
}

else {

echo "Saisissez votre nom de compte :";
echo
?>

<form action="infovote.php" method="post">
<p>Nom de compte : <input type="text" name="pseudo"> </p>
<input type="submit" value="Valider" name="Valider">
</form>

<?php
}
?>
0
Axblade28 Messages postés 95 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 18 décembre 2010 7
10 févr. 2010 à 15:22

<?php
if(isset($_POST['pseudo'])) {

mysql_connect("localhost", "root", "JcCfmJ54EOx9k9kefmJ5");
mysql_select_db("realmd");

$query = "SELECT COUNT(*) AS nbr FROM account WHERE username ='".$_POST['pseudo']."'";
$comptage = mysql_query($query);
$result = mysql_fetch_array($comptage);
$resultat = $result['nbr'];

if($resultat == 1) {
$query = "SELECT vote FROM account WHERE username ='".$_POST['pseudo']."'";
$requete = mysql_query($query);
$result2 = mysql_fetch_array($requete);

echo "Le compte ". $_POST['pseudo'] ." possède ". $result2['vote'] ." point(s) de vote.";

}

else {

echo "Le nom de compte entré n'est pas valide.";

}
}

else {

echo "Saisissez votre nom de compte :";
?>

<form action="infovote.php" method="post">
<p>Nom de compte : <input type="text" name="pseudo"> </p>
<input type="submit" value="Valider" name="Valider">
</form>

<?php
}
?>


Ok c'est bon ca marche avec le code suivant. Donc il s'agissait de présenté la variable sous la forme '".$_POST['pseudo']."' apparemment.

Merci beaucoup pour cette lecon de PhP :)

Merci à ceux qui m'ont aidé :)

Kss
0