Probleme requete sql (php)
Résolu/Fermé
bouledepoils
Messages postés
11
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
26 décembre 2007
-
10 déc. 2007 à 22:28
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007 - 26 déc. 2007 à 14:46
bouledepoils Messages postés 11 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 26 décembre 2007 - 26 déc. 2007 à 14:46
A voir également:
- Probleme requete sql (php)
- Easy php - Télécharger - Divers Web & Internet
- Blob sql ✓ - Forum Webmastering
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
7 réponses
Bonsoir,
Beaucoup de choses bizares dans ton code:
<?php
include("admin_search.php");
?>
ces 3 lignes ne doivent pas etre au debut du script
<!DOCTYPE doit etre au debut, alors mets les plus bas dans le <body
ensuite pourquoi les @ devant les $_POST ? j'ai jamais vu ça
le comparateur different de n'est pas comme ça: if (@$_POST['departement']<>"")
mais
ensuite:
$nb = mysql_num_rows($resultat);
// si on ne trouve personne
if( !$nb[0] )
mets plutot:
ensuite tu mets dans ta boucle while: $compteur++;
je n'ai pas vu ou tu initialise cette variable $compteur=0;
ensuite:
if( !$nb[0] ) {
echo 'Aucun consommateurs trouvés';
}
// sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
else {
evites de mettre des lignes de commentaires entre } et else
Coriges tout ça.
@lain
Beaucoup de choses bizares dans ton code:
<?php
include("admin_search.php");
?>
ces 3 lignes ne doivent pas etre au debut du script
<!DOCTYPE doit etre au debut, alors mets les plus bas dans le <body
ensuite pourquoi les @ devant les $_POST ? j'ai jamais vu ça
le comparateur different de n'est pas comme ça: if (@$_POST['departement']<>"")
mais
if (@$_POST['departement']!="")
ensuite:
$nb = mysql_num_rows($resultat);
// si on ne trouve personne
if( !$nb[0] )
mets plutot:
if($nb==0)
ensuite tu mets dans ta boucle while: $compteur++;
je n'ai pas vu ou tu initialise cette variable $compteur=0;
ensuite:
if( !$nb[0] ) {
echo 'Aucun consommateurs trouvés';
}
// sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
else {
evites de mettre des lignes de commentaires entre } et else
if( !$nb[0] ) { echo 'Aucun consommateurs trouvés'; } else { // sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
Coriges tout ça.
@lain
Il n'y a aucun problème ni aucune raison de descendre les 3 lignes de php plus bas dans le code, si admin_search .php ne génère pas de sortie
et si plus tard on le modifie et qu'il génère une sortie ??
alors tant qu'à faire il vaut mieux faire un code normal
et si plus tard on le modifie et qu'il génère une sortie ??
alors tant qu'à faire il vaut mieux faire un code normal
bouledepoils
Messages postés
11
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
26 décembre 2007
15 déc. 2007 à 16:42
15 déc. 2007 à 16:42
c'est bon j'ai corrigé merci beaucoup de l'aide
bouledepoils
Messages postés
11
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
26 décembre 2007
15 déc. 2007 à 17:35
15 déc. 2007 à 17:35
Au fait petite erreur de ma part pour les prochains c'est
mysql_num_rows
et pas mysql_fetch_row
donc ca nous donne:
mysql_num_rows
et pas mysql_fetch_row
donc ca nous donne:
$nb = mysql_num_rows($resultat); if($nb == 0) { echo 'Aucun consommateurs trouvés'; } else { while(....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bouledepoils
Messages postés
11
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
26 décembre 2007
16 déc. 2007 à 18:31
16 déc. 2007 à 18:31
Rebonjour, j'ai de nouveau une erreur, en fait cette fois, on m'affiche 2 fois la meme entrée dans le tableau, donc à la place d'en avoir 6 par exemple, j'en ai 12 :/
voila si quelqu'un pourrait m'aider:
voila si quelqu'un pourrait m'aider:
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <head> <title>Résultat de la recherche</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <script src="sorttable.js"></script> <style type="text/css"> table.sortable thead { background-color:#1c529d ; color:#FFFFFF; font-weight: bold; cursor: default; } a { color:#1c529d; } </style> </head> <body> <?php include("admin_search.php"); $SQL =''; // PAS BESOIN DE JOINTURE ICI! ON VA ASSOCIER LES TABLES (prend moins de ressources) // Si on recherche dans la table conso2 (sachant que ca peut etre vide), alors la requete sql diffère un peu if(!empty($_POST['situation']) OR !empty($_POST['internet']) OR !empty($_POST['entretiens']) OR !empty($_POST['reunions']) OR !empty($_POST['sante']) OR !empty($_POST['beaute']) OR !empty($_POST['alimentaire']) OR !empty($_POST['revenus']) OR !empty($_POST['enfant']) OR !empty($_POST['membre1']) OR !empty($_POST['membre2']) OR !empty($_POST['membre3']) OR !empty($_POST['membre4']) OR !empty($_POST['membre5']) OR !empty($_POST['profession'])) { $SQL="SELECT * FROM conso1, conso2 WHERE (conso1.id = conso2.id)"; // variable pour dire que les utilisateurs selectionnés ont remplient inscription2.php $conso2 = true; } // Prise en compte de la naissance // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['age'])) { // On determine les années de naissance à aller chercher dans la bdd // si l'année de naissance 2 est inférieur a l'année 1, ce n'est pas bien pour le between... if( $_POST['age2'] >= $_POST['age1']) { function age($age) { $today = date('Y'); $annees = $today - $age; return $annees; } // entre 1ere année $annee1 = age($_POST['age1']); // et 2e année $annee2 = age($_POST['age2']); // On cherche entre l'année 2 et l'année 1 dans la bdd // Si on a déja une requete commencée if(!empty($SQL)){ $SQL=$SQL." AND (naissance BETWEEN ".@$annee2." AND ".@$annee1.")"; } //sinon on la commence else{ $SQL="SELECT * FROM conso1, conso2 WHERE (naissance BETWEEN ".@$annee2." AND ".@$annee1.")"; } } // il y a une incoherence donc on avertit else{ echo 'Veuillez insérer un premier age inférieur au second'; } } // Prise en compte du département // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['departement'])) { // si on a activé l'option région parisienne if(!empty($_POST['option_paris'])){ // Si on a déja une requete commencée if(!empty($SQL)){$SQL=$SQL." AND (departement IN ('75','77','78','91','92','93','94','95'))";} //sinon on la commence else{$SQL="SELECT * FROM conso1, conso2 WHERE (departement IN ('75','77','78','91','92','93','94','95'))";} } // sinon on cherche le département else{ // Si on a déja une requete commencée if(!empty($SQL)){$SQL=$SQL." AND (departement = '".@$_POST['departement1']."')";} //sinon on la commence else{$SQL="SELECT * FROM conso1, conso2 WHERE (departement = '".@$_POST['departement1']."')";} } } // Prise en compte du sexe // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['sexe'])) { if($_POST['sexe1']=="homme") { // Si on a déja une requete commencée if(!empty($SQL)){$SQL=$SQL." AND (titre = 'Mr')";} //sinon on la commence else{$SQL="SELECT * FROM conso1, conso2 WHERE (titre = 'Mr')";} } elseif($_POST['sexe1']=="femme") { // Si on a déja une requete commencée if(!empty($SQL)){$SQL=$SQL." AND (titre = 'Mme' OR titre = 'Mlle')";} //sinon on la commence else{$SQL="SELECT * FROM conso1, conso2 WHERE (titre = 'Mme' OR titre = 'Mlle')";} } } // Prise en compte du prénom // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['prenom'])) { // Si on a déja une requete commencée if(!empty($SQL)){$SQL=$SQL." AND (prenom LIKE '%".@$_POST['prenom1']."%')";} //sinon on la commence else{$SQL="SELECT * FROM conso1, conso2 WHERE (prenom LIKE '%".@$_POST['prenom1']."%')";} } // Prise en compte du nom // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['nom'])) { // Si on a déja une requete commencée if(!empty($SQL)){$SQL=$SQL." AND (nom LIKE '%".@$_POST['nom1']."%')";} //sinon on la commence else{$SQL="SELECT * FROM conso1, conso2 WHERE (nom LIKE '%".@$_POST['nom1']."%')";} } // Fin des criteres de conso1 //Début criteres qui € à conso2 // La requete $SQL a forcement été préparée en haut, donc on ne fait qu'ajouter des critères // Prise en compte de la situation familiale // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['situation'])) {$SQL=$SQL." AND (situation = '".@$_POST['situation1']."')";} // Prise en compte des réponses positives au questionnaire sur internet // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['internet'])) {$SQL=$SQL." AND (questionnaire_ligne = 'oui')";} // Prise en compte des réponses positives aux entretiens // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['entretiens'])) {$SQL=$SQL." AND (entretiens = 'oui')";} // Prise en compte des réponses positives aux reunions // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['reunions'])) {$SQL=$SQL." AND (reunions = 'oui')";} // Prise en compte des réponses positives au sujet sur la sante // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['sante'])) {$SQL=$SQL." AND (sante = 'oui')";} // Prise en compte des réponses positives au sujet sur la sante // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['beaute'])) {$SQL=$SQL." AND (beaute = 'oui')";} // Prise en compte des réponses positives au sujet sur la sante // S'il n'a rien saisi on ne prend rien, sinon, on ajoute cette condition if (!empty($_POST['alimentaire'])) {$SQL=$SQL." AND (alimentaire = 'oui')";} //Prise en compte du revenu ménage if (!empty($_POST['revenus'])) {$SQL=$SQL." AND (revenus_menage = '".@$_POST['revenus1']."')";} //Prise en compte des enfants if (!empty($_POST['enfant'])) {$SQL=$SQL." AND (enfants >= 1)";} //Prise en compte des enfants entre 0 à 5 ans if (!empty($_POST['membre1'])) {$SQL=$SQL." AND (membre1 >= 1)";} //Prise en compte des enfants entre 6 à 10 ans if (!empty($_POST['membre2'])) {$SQL=$SQL." AND (membre2 >= 1)";} //Prise en compte des enfants entre 11 à 13 ans if (!empty($_POST['membre3'])) {$SQL=$SQL." AND (membre3 >= 1)";} //Prise en compte des enfants entre 14 à 17 ans if (!empty($_POST['membre4'])) {$SQL=$SQL." AND (membre4 >= 1)";} //Prise en compte des enfants entre 18 à 25 ans if (!empty($_POST['membre5'])) {$SQL=$SQL." AND (membre5 >= 1)";} //Prise en compte de la profession if (!empty($_POST['profession'])) {$SQL=$SQL." AND (profession LIKE '%".@$_POST['profession1']."%')";} // Ou l'utilisateur a posté et la requete a été créé ci-dessus, ou l'utilisateur a clické sur order by... if(!empty($SQL)){ // Si l'utilisateur n'a pas clické alors il a forcement du poster, donc on continue vu que $SQL existe déjà // Connexion à la base de donnée mysql_connect('sql.free.fr', "3615bdp", "worldmar"); mysql_select_db("3615bdp"); // requete selon les criteres rentrés dans formulaires $resultat = mysql_query($SQL) or die(mysql_error()); $nb = mysql_num_rows($resultat); // si on ne trouve personne if($nb == 0) { echo 'Aucun consommateurs trouvés'; } // sinon on parcours le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab else { if ($nb == 1){echo '1 consommateur trouvé';} else{echo $nb,' consommateurs trouvés';} ?> <table class="sortable"> <tr> <th>Titre</th> <th>Prenom</th> <th>Nom</th> <th>Age</th> <th>Ville</th> <th>Code Postal</th> <th>Telephone</th> <th>Portable</th> <th>Email</th> <?php if($conso2) { ?> <th>Situation</th> <th>Niveau Scolaire</th> <th>Revenus du ménage</th> <th>Revenus perso</th> <th>Profession</th> <th>Nombre d'enfants</a></th> <th>Enfants de 0 à 5 ans</th> <th>Enfants de 6 à 10 ans</th> <th>Enfants de 11 à 13 ans</th> <th>Enfants de 14 à 17 ans</th> <th>Enfants de 18 à 25 ans</th> <th>Enfants de 25 et + </th> <th>Autre sujet de réunions interessé</th> </tr> <?php } $compteur=0; while($tab = mysql_fetch_array($resultat)) { //coloration d'une ligne sur deux $couleur = ($compteur % 2 == 0) ? '#eee' : '#FFFFFF'; $today = date('Y'); $age = $today - $tab['naissance']; // id pour la fiche membre $id = $tab['id']; echo'<tr bgcolor="'.$couleur.'"> <td>',$tab['titre'],'</td> <td><a href="profil.php?id=$id">',$tab['prenom'],'</a></td> <td>',$tab['nom'],'</td> <td>',$age,'</td> <td>',$tab['ville'],'</td> <td>',$tab['postal'],'</td> <td>',$tab['telephone'],'</td> <td>',$tab['portable'],'</td> <td>',$tab['email'],'</td>'; if($conso2) { echo' <td>',$tab['situation'],'</td> <td>',$tab['scolaire'],'</td> <td>',$tab['revenus_menage'],'</td> <td>',$tab['revenus_perso'],'</td> <td>',$tab['profession'],'</td> <td>',$tab['enfants'],'</td> <td>',$tab['membre1'],'</td> <td>',$tab['membre2'],'</td> <td>',$tab['membre3'],'</td> <td>',$tab['membre4'],'</td> <td>',$tab['membre5'],'</td> <td>',$tab['membre6'],'</td> <td>',$tab['autre'],'</td>'; } echo '</tr>'; $compteur++; } //lien pour envoyer mail massif + sa variable session pour choisir les consos mysql_close(); ?><a href="mail.php">Envoyer un e-mail à ce(s) consommateur(s)</a> </table> <?php $_SESSION['sqlmail'] = $SQL; } } ?> </body></html>
bouledepoils
Messages postés
11
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
26 décembre 2007
19 déc. 2007 à 14:54
19 déc. 2007 à 14:54
up!
bouledepoils
Messages postés
11
Date d'inscription
mercredi 17 octobre 2007
Statut
Membre
Dernière intervention
26 décembre 2007
26 déc. 2007 à 14:46
26 déc. 2007 à 14:46
en fait pb résolu
il faut mettre:
SELECT * FROM conso1 (nom LIKE '%".@$_POST['nom1']."%')"
et non SELECT * FROM conso1, conso2 WHERE (nom LIKE '%".@$_POST['nom1']."%')"
et ce à plusieurs reprises (apres c'est qu'une question de logique)
Merci beaucoup, bonne vaccances
il faut mettre:
SELECT * FROM conso1 (nom LIKE '%".@$_POST['nom1']."%')"
et non SELECT * FROM conso1, conso2 WHERE (nom LIKE '%".@$_POST['nom1']."%')"
et ce à plusieurs reprises (apres c'est qu'une question de logique)
Merci beaucoup, bonne vaccances
10 déc. 2007 à 23:34
include("admin_search.php");
?>
ces 3 lignes ne doivent pas etre au debut du script
<!DOCTYPE doit etre au debut, alors mets les plus bas dans le <body
<!DOCTYPE etc.. sera bien au début du fichier envoyé au client. Il n'y a aucun problème ni aucune raison de descendre les 3 lignes de php plus bas dans le code, si admin_search .php ne génère pas de sortie