Code PhP/SQL basique soucis

Résolu
Axblade28 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   -  
Axblade28 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   - 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

le père
 
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   Statut Membre Dernière intervention   7
 
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   Statut Membre Dernière intervention   7
 
up
0
le père
 
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   Statut Membre Dernière intervention   7
 
Toujours rien qui ne s'affiche malgré la correction.
0
giheller Messages postés 1878 Date d'inscription   Statut Membre Dernière intervention   142
 
bonjour,


j'aurais plutôt mis $_POST
0
Camuke Messages postés 224 Date d'inscription   Statut Membre Dernière intervention   88
 
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   Statut Membre Dernière intervention   7
 
<?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   Statut Membre Dernière intervention   7
 
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 1878 Date d'inscription   Statut Membre Dernière intervention   142
 
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
le père
 
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   Statut Membre Dernière intervention   88
 
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 1878 Date d'inscription   Statut Membre Dernière intervention   142
 
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   Statut Membre Dernière intervention   7
 

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