liste déroulante qui ne se remplie pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : liste déroulante qui ne se remplie pas

par ouckileou » 22 juin 2006, 11:15

lol merci tout le monde !
a force de le voir ce script javais pas vu qu'il manquai le where lol :)
Tu vois moi ce qui me saoule c'est que dès le premier message Ryle t'as dit de faire afficher les messages d'erreur MySQL avec mysql_error()

puis guilt92 t'as demandé si tu l'avais fait

Puis moi aussi, et je t'ai filé un lien vers un message qui explique comment débugger

Mais non, malgré tout ça tu ne l'as pas fait, tu t'es contenté de dire "ça ne marche pas je ne sais pas comment résoudre"

En attendant que des gentils membres comme guilt92 continuent d'éplucher ton code et finissent par trouver l'erreur

Alors que la fonction mysql_error() t'aurais direct signalé la faute de syntaxe

Résultat : ton problème est résolu, mais je ne suis pas sûr que tu sois plus capable de débugger seule, et tu reviendras au prochain problème crier au secours

Et en ce moment il y a plein de gens comme toi, qui ne font pas ce qu'on leur dit pour débugger eux-mêmes

Bientôt je sens que je vais verrouiller les messages tant que les opérations élémentaires de débuggage ne seront pas faites, c'est trop simple et pas pédagogique d'attendre que quelqu'un trouve l'erreur

Mais bon, invitée, tu es sûrement déjà loin et tu ne reverras peut-être jamais ce topic, que je vais devoir marquer résolu, et je parle dans le vent... :?

par marie » 22 juin 2006, 11:10

lol merci tout le monde !
a force de le voir ce script javais pas vu qu'il manquai le where lol :)

par ouckileou » 22 juin 2006, 10:47

OUai je pense que le probleme vient de la...mais je n'arrive pas a le résoudre ...
Bon et à part ça ? tu as suivi les conseils ?

Dire "je n'arrive pas" ça n'aide personne, ni toi ni nous
Soit tu as fait les opérations pour débugger (afficher le contenu de la requête, afficher les erreurs) et si rien ne t'as alerté il faut nous donner ces résultats

Soit tu ne les as pas faites, et donc il faut les faire, tout simplement, et nous donner les résultats

par guilt92 » 22 juin 2006, 10:47

peut etre qu il manque un WHERE dans ta requete... avant le num= par exemple ;)

par Marie » 22 juin 2006, 10:45

OUai je pense que le probleme vient de la...mais je n'arrive pas a le résoudre ...

par ouckileou » 22 juin 2006, 10:29

ouai quand je fait echo("$intiales2"); ca ne maffiche rien mais je ne sais pas pk???
Peut-être que ta requête a échoué
$sql2= "select initiales from renseignements num = '$id'";
$query2 = mysql_query($sql2);
$initiales2 = mysql_result($query2,0,'initiales'); 
Ils t'ont déjà donné des pistes pour débugger, tu peux aussi suivre ce post : PHP+SQL : Etapes à suivre pour résoudre les problèmes

par ouckileou » 22 juin 2006, 10:28

enlevé le ='selected' qui n est pas utile).
Si, c'est utile si tu veux que ton code soit valide XHTML
Tout doit avoir ce format :

Code : Tout sélectionner

attribut="valeur"

par marie » 22 juin 2006, 10:27

ouai quand je fait echo("$intiales2"); ca ne maffiche rien mais je ne sais pas pk???

par guilt92 » 22 juin 2006, 10:24

Essaye de la facon suivante (j'ai juste ajouté un espace avant le selected et enlevé le ='selected' qui n est pas utile). As tu vérifié la valeur de $initiales2 ?
<select name="correspondant"> 
<?php 
//remplissage de la liste déroulante a l'aide de la base de donnée en concaténant les champs afin qu'ils soit sur une meme ligne 
$sql= "select initiales, nom , prenom , num from correspondant order by initiales"; 
$query = mysql_query($sql); 
$numrow = mysql_num_rows($query); 

$sql2= "select initiales from renseignements num = '$id'"; 
$query2 = mysql_query($sql2); 
$initiales2 = mysql_result($query2,0,'initiales'); 



for($i=0;$i<$numrow;$i++){ 
$initiales = mysql_result($query,$i,'initiales'); 
$nom = mysql_result($query,$i,'nom'); 
$prenom = mysql_result($query,$i,'prenom'); 
$num = mysql_result($query,$i,'num'); 


if ($initiales == $initiales2 ){ 
echo "<option value=\"".$initiales."\" selected> ".$initiales." , ".$nom." , ".$prenom." , ".$num."</option>"; 
} else { 
echo "<option value=\"".$initiales."\"> ".$initiales." , ".$nom." , ".$prenom." , ".$num."</option>"; 
} 
} 
?> 
</select> 

par Marie » 22 juin 2006, 10:21

bah enfaite , ca m'affiche bien ma liste déroulante ( je me sert de " initiales " dans un update et ca fonctionne ) ! mais ma variable ne s'affiche pas par défaut dans ma liste déroulante !

par guilt92 » 22 juin 2006, 10:17

mais ca fonctionne pas encore
Que se passe t il exactement ? Tu as un message d erreur ? La liste se remplit ou non ?

Il faudrait ajouter un espace avant le selected dans ta liste... Sinon essaye de faire un echo de tes variables, ajoutes comme Ryle l'a suggéré des or die(mysql_error()); et donne nous des informations sur le problème stp.

par ouckileou » 22 juin 2006, 10:13

Utilises les balises [ php ] pour du code php, la coloration syntaxique rend le code plus lisible :)
:!:

Là, j'ai corrigé...

par marie » 22 juin 2006, 10:11

coucou je l'est refet ...mais ca fonctionne pas encore...voi tu une erreur ? :)

<select name="correspondant">
<?php
//remplissage de la liste déroulante a l'aide de la base de donnée en concaténant les champs afin qu'ils soit sur une meme ligne
$sql= "select initiales, nom , prenom , num from correspondant order by initiales";
$query = mysql_query($sql);
$numrow = mysql_num_rows($query);

$sql2= "select initiales from renseignements num = '$id'";
$query2 = mysql_query($sql2);
$initiales2 = mysql_result($query2,0,'initiales');



for($i=0;$i<$numrow;$i++){
$initiales = mysql_result($query,$i,'initiales');
$nom = mysql_result($query,$i,'nom');
$prenom = mysql_result($query,$i,'prenom');
$num = mysql_result($query,$i,'num');


if ($initiales == $initiales2 ){
echo "<option value=\"".$initiales."\"selected='selected'> ".$initiales." , ".$nom." , ".$prenom." , ".$num."</option>";
} else {
echo "<option value=\"".$initiales."\"> ".$initiales." , ".$nom." , ".$prenom." , ".$num."</option>";
}
}
?>
</select> 
			

par Ryle » 21 juin 2006, 15:04

Utilises les balises [ php ] pour du code php, la coloration syntaxique rend le code plus lisible :)

A priori ton erreur viendrait de là :
$i = "SELECT initiales FROM renseignements WHERE num = '.$id.'"; 
Les "." autour de $id ne servent à rien puisque tu n'es pas en train de concatener des chaines. Tu peux faire :
$i = "SELECT initiales FROM renseignements WHERE num = '".$id."'"; 
// ou
$i = "SELECT initiales FROM renseignements WHERE num = '$id'";
Sachant qu'il ne faudrait pas (même si mysql le tolère) mettre d'apostrophes autour d'un nombre
$i = "SELECT initiales FROM renseignements WHERE num = $id";
// ou 
$i = "SELECT initiales FROM renseignements WHERE num = " . $id;

Après tu peux ajouter des or die(mysql_error()) après tes mysql_query pour voir s'il n'y a pas d'erreur sql.. Sachant que s'il y a des messages d'erreur php situés entre les balises <select></select> tu ne pourras les voir qu'en regardant le source html de la page générée :)

liste déroulante qui ne se remplie pas

par marie » 21 juin 2006, 14:58

liste déroulante bonjour ma liste déroulante ne fonctionne pas , et je ne voie pas le probleme :( snif
<select name="correspondant">
<?php
//remplissage de la liste déroulante a l'aide de la base de donnée en concaténant les champs afin qu'ils soit sur une meme ligne
$sql= "SELECT initiales, nom , prenom , num FROM correspondant ORDER BY initiales";
$res = mysql_query($sql);


$i = "SELECT initiales FROM renseignements WHERE num = '.$id.'"; 
$res2 = mysql_query($i);
$val2 = $mysql_fetch_array($res2);
$initiales = $val2['initiales'];
while($val=mysql_fetch_array($res)) 
{ 
    if ($val['initiales']== $initiales)
    {
         echo '<option value="'.$val['initiales'].'" selected="selected">'.$val['initiales'].' , '.($val['nom']).' , '.($val['prenom']).', '.($val['num']).'</option>';
    } 
    else 
    {
        echo '<option value="'.$val['initiales'].'"> '.$val['initiales'].', '.($val['nom']).' , '.($val['prenom']).' , '.($val['num']).'</option>';
    } 
}
?>
</select>