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
Axblade28 Messages postés 95 Date d'inscription Statut Membre Dernière intervention - 10 févr. 2010 à 15:22
A voir également:
- Code PhP/SQL basique soucis
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code deverouillage telephone perdu - Guide
- Code blocks - Télécharger - Langages
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é
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é
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 } ?>
<?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 } ?>
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
$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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
<?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
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
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 :)
error_reporting = E_ALL & ~E_NOTICE
La je ne comprend vraiment plus :)
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);
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);
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 ?
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 ?
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)
(un export de la table avec quelque donnée exemple serai parfait)
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
}
?>
<?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
}
?>
<?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