Tom's Guide > Forum > Programmation > RESOLU (PHP/MySQL) Probleme syntaxe...

RESOLU (PHP/MySQL) Probleme syntaxe...

Forum Programmation : RESOLU (PHP/MySQL) Probleme syntaxe...

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour, je vais vous montrer mon code ( pris sur internet et modifié pour qu'il soit adapté a mes besoins). Ma page s' appelle resultat.php, le resultat s' affiche sur la meme page.
Ma base de donnée: essai
login: root
mdp: (aucun)
table concernée: unites_tbl

Citation :


<select name="nom"> <form method="post" action="resultat.php">

<?php
$db =("essai" );
$serveur =("localhost" );
$user =("root" );
$pass =("" );


mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');
$sql = 'SELECT * FROM unites_tbl';
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( !$nb[0] ) {
echo '<option>Aucun nom</option>';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
echo '<option value="'.$list['nom'].'">'.$list['nom'].'</option>';
}
}
mysql_close();
?>
</select>
<input type="submit" value="OK">

<?php
mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');
$sql = "SELECT * FROM unites_tbl WHERE nom = '".$_POST['nom']."';";
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( $nb>0 ) {
echo 'Aucun noms d\' unité connu';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
}
}
mysql_close();
?>



Sa cré un menu déroulant ou ( normalement ) s' affiche le nom de l' unité contenu dans cette table: unites_tbl :

id nom PV Attaque BonusATQ BonusDEF
1 grenadier 200 20 50 10
2 cavalier 245 15 15 80
3 indigene 420 40 1 10
4 indien 40 100 50 100

Mais le probleme, c'est que le code ne trouve pas ma colonne "nom" et m' affiche : Aucun nom dans le menu déroulant. Je ne trouve pas l' erreur, qqun peut m' aider?

PS: dsl si le script est vraiment pourri car je debute la dedans, et je vois pas du tout ou sa plante

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Up!

Personne ne voit ? :-(

Répondre à frenchman

Salut,

Pour commencer regarde ton test : if ( !$nb[0] ) {
Effectivement si tu as des resultats tu affiche aucun nom :/ hors c le contraire que tu fais :)
Ton change le par if ( $nb == 0 ) {

Ensuite essaye de mieux structurer ton code, pour un debutant c deja pas mal, mais c'est pour eviter de te melanger.

Citation :


<?
$db =("essai" );
$serveur =("localhost" );
$user =("root" );
$pass =("" );

//connexion à la BD
mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');?>

<form method="post" action="resultat.php">
<select name="nom">
$sql = 'SELECT * FROM unites_tbl';
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( $nb == 0 ) {
echo '<option>Aucun nom</option>';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
echo '<option value="'.$list['nom'].'">'.$list['nom'].'</option>';
}
}
mysql_close();
?>
</select>
<="submit" value="OK">

Répondre à Shinji62

Je te remercie, je mettrais des notes sur mon script ^^

bon j' ai sa:

[quote]

<select name="nom"> <form method="post" action="resultat.php">

<?php
//parametrage
$db =("essai" );
$serveur =("localhost" );
$user =("root" );
$pass =("" );
$table =("unites_tbl" );

//connexion BdD
mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');


$sql = " SELECT * FROM $table ";
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( $nb == 0 ) {
echo '<option>Aucun nom</option>';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
echo '<option value="'.$list['nom'].'" </option>';
}
}

//deco
mysql_close();
?>
</select>
<input type="submit" value="OK">

<?php

//connexion
mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');

$sql = "SELECT * FROM unites_tbl WHERE nom = '".$_POST['nom']."';";
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( $nb>0 ) {
echo 'Aucun noms d\' unité connu';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
}
}

//deco
mysql_close();
?>

mais maintenant dans me menu déroulant, ya rien qui s' affiche ( meme plus Aucun nom )... Help please


Répondre à frenchman

Tss relis un peu ton code :)

regarde la ligne :

echo '<option value="'.$list['nom'].'" </option>';


essaye

echo '<option value=\"' .$list['nom'].' \">' .$list['nom'].' </option>';

Répondre à Shinji62

Yahooooooooo sa marche merci

Ya juste un bug, je selectionne mon item dans le menu déroulant, et quand je met ok, ba rien de s' affiche...

j' avais jamais utilisé les menu de ce genre avant, la je m' y connias pas mais je cris que sa vient de :

<select name="nom"> <form method="post" action="resultat.php">

blablabla

<i n p u t t y p e ="submit" value="OK"> ( dsl mais sa s' affiche pas sur le fofo autrement )
</select>

encore un poil d' aide svp...vraiment dsl

Répondre à frenchman

essai ça :

[code]
<form method="post" action="resultat.php">
<select name="nom">

blablabla

</select>
<="submit" value="OK">
[code]

Répondre à JarAsh

ok merci sa fonctionne ^^

merci a tous !!!

Répondre à frenchman

Ba en fait non sa marche pas, j' ai bien la liste, le boutton Ok fonctionne bien, mais quand j' appelle la page resultat1.php, ( j' ai coupé le code en 2 ) cette page m' affiche tjr: Aucun noms d' unité connu

c'est le msg d' erreur si ya rien, hors le nom de l' unité existe, mais sa m' affiche pas ses stats...

encore vraiment dsl de l' aide que je vous demande

PS: ma table unites_tbl:

id nom PV Attaque BonusATQ BonusDEF
1 grenadier 200 20 50 10
2 cavalier 245 15 15 80
3 indigene 420 40 1 10
4 indien 40 100 50 100


Répondre à frenchman

Relis ton code ;) Tu dis que si le résultat est supérieur à z&éro, il affiche une erreur!
if ( $nb>0 ) {

Remplace par
if ( $nb == 0 ) {

Répondre à Bacara

merci, mais c'est deja remplacé, et s' a ne marche pas, de plus si dans ma deuxieme partie de code je met ce que tu m' a dit, sa me met deja Aucun nom... avant meme d' appuyer sur Ok...

Répondre à frenchman

Ah...
Pourrais-tu mettre à jour les codes stp, et poster ce que tu as mis pour chaque fichier, qu'on voit ce qui ne va pas? Merci ;)

Répondre à Bacara

je te fais sa juste apres manger, avec capture d' ecran de mes tables

Répondre à frenchman

Voila alors sur la page résultat.php ( script principal )

Citation :


<form method="post" action="resultat1.php">
<select name="nom">


<?php

//paramètres
$db =("essai" );
$serveur =("localhost" );
$user =("root" );
$pass =("" );
$table =("unites_tbl" );


//connection BdD
mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');

$sql = " SELECT * FROM $table ";
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( $nb == 0 ) {
echo '<option>Aucun nom</option>';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
echo '<option value=\"' .$list['nom'].' \">' .$list['nom'].' </option>';

}
}

//fermeture base
mysql_close();
?>
<input type="submit" value="OK">
</select>



Page resultat1.php appelé par resultat.php:

Citation :


<?php

$db =("essai" );
$serveur =("localhost" );
$user =("root" );
$pass =("" );
$table =("unites_tbl" );

mysql_connect($server, $user, $pass) or die('Erreur de connexion');
mysql_select_db($db) or die('Base inexistante');
$sql = "SELECT * FROM unites_tbl WHERE nom = '".$_POST['nom']."';";
$query = mysql_query($sql) or die( 'Erreur' );
$nb = mysql_num_rows($query);
if ( $nb == 0 ) {
echo 'Aucun noms d\' unité connu';
} else {
while ( $list = mysql_fetch_array( $query ) ) {
}
}
mysql_close();
?>




Voila, ma table unites_tbl contenue dans la base de donnée essai:

[img]

http://img102.imageshack.us/img102/7880/table21oj.jpghttp://img436.imageshack.us/img436/5069/table34te.jpg[/img]

Voila voilou le dossier complet

Répondre à frenchman

Up

voila toutes les infos, re-help please

Répondre à frenchman

Déjà pourquoi ton "select" possède ton bouton ?

Il a pas à être imbriqué dedans...

Et la fin de ton <form> tu l'as mis ?

Répondre à Darit

j' ai essayé dans les 2 sens sa revient au même, le probleme ne vient pas de la ( le boutton Ok est tjr bon, mais j' ai l' impression que c'est ma requete qui foire. )

Répondre à frenchman

C'est aps aprce que ca amrche que c'est bien ;)

Désolé mais ton bouton a pas à être dans ton select...

Sinon pourquoi tu as un ";" avant le dernier dans :

Code :
  1. $sql = "SELECT * FROM unites_tbl WHERE nom = '".$_POST['nom']."';";



Sinon Avant toute chose tu fais un

Code :
  1. $nom=$_POST['nom'];
  2. echo $nom;



et tu vois la valeur qu'il te renvoit ;)

En fonction de ca tu peux voir d'où vient le problème...

Répondre à Darit

voila, j' ai remis les balise dans l' ordre, et j' ai rajiouté ton bout de code, sur la page de résultat il s ' affiche:

Citation :

Aucun nom d' unité connu\\\"indigene



ou indigène est le nom de l' unité que l' on a selectionné dans la liste.

Répondre à frenchman

Tu l'as mis où ton echo $nom ?

Mets le dès le début de ton code PHP ;-)

Répondre à Darit

Voila mis au debut du code:

Citation :

\\\"indigeneAucun nom d' unité connu



c'est pareil sauf qu'il est avant ^^

Répondre à frenchman

Mais d'où il te choppe les :

Code :
  1. \\\"



C'est pour ca qu'il trouve pas...

Répondre à Darit

Ba je sais pas, yen a nul part des antislash, meme pas dans ma table

Répondre à frenchman

Forcément :nono:

Remplace ca :

Code :
  1. echo '<option value=\"' .$list['nom'].' \">' .$list['nom'].' </option>';



Par ca :

Code :
  1. echo '<option value="' .$list['nom'].' ">' .$list['nom'].' </option>';



dans ta page d'affichage des resultat.php je crois...

Répondre à Darit

ok j' ai remplacé, plus d' erreur ^^

mais la c'est moi qui me suis planté, sa m' affiche pas la ligne de la table correspondante mais seulement le nom, c'est ou l' erreur ?

Répondre à frenchman

C'est tout à fait normal...

Tu ne récupères que l'attribut 'nom' de ton résultat via :

Code :
  1. $list['nom']

Répondre à Darit

Ok, j' ai essayer d' uncorporer les autres, mais a chaque fois il me met:

Citation :

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in C:\wamp\www\essai\resultat.php on line 24



je sais pas comment ecrire avec $list , le reste oui

Répondre à frenchman

$list['nom'], $list['PV'], $list['Attaque'], $list['BonusATQ'], $list['BonusDEF']

Ca devrait fonctionner ;-)

Répondre à Darit

YAHOOOOOOOOOOOO sa fonctionne!!!!!!!!

j' ai plus qu' a organisé sa dans un petit tableau !!!

Yahooo merci a tous ceux qui ont répondu !!!!!!! :-D

Répondre à frenchman
Tom's Guide > Forum > Programmation > RESOLU (PHP/MySQL) Probleme syntaxe...
Aller à :

Il y a 352 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens