Requete phpmyadmin
RésoluAprès avoir créé un formulaire de contact, j'aimerais pouvoir créé une page toute simple pour mon tuteur.
en effet, je dois simplifier au maximum une requête pour qu'il puisse après mon stage toujours effectuer la requête j'ai donc penser créé une page html où l'on choisirais le tri a effectuer(choix a effectuer dans une liste déroulante), choisir l'internaute par sa profession par exemple et alors on verrais s'afficher les résultats trouvé dans la même page cependant je n'y parviens pas pouvez-vous m'aider?
Configuration: Windows XP Firefox 2.0.0.14
45 réponses
La problématique porte sur la création d'une page web simple permettant de trier et d'afficher les résultats d'une requête sur une base d'abonnés, avec des critères comme ville, métier ou CSP. Des réponses proposent solutions PHP, notamment en passant un paramètre de tri dans l’URL et en affichant les résultats sur la page, avec l’idée de nommer la page et d’appeler tri_contact.php. En parallèle, certains évoquent d’autres pistes comme JavaScript ou l’amélioration du code PHP pour les boucles et les affichages, en restant centrés sur le tri et l’affichage. En dernier, l’idée fiable est de créer une page nommée abonne.php et d’utiliser un paramètre GET pour trier les résultats, ce qui permet d’afficher dynamiquement le tableau selon le critère choisi.
-
lol ,:)
-
Erf désolé je t'ai un peu oublié.
Et là j'ai pas le temps, je sors.
Dès que j'ai un moment je te donne un coup de main. ;)-
-
@loute08lol , t es perdue chifounette , :)
-
@loute08Pour ceux qui veulent la solution :
index.php
<link href="../test_php/images/style.css" rel="stylesheet" type="text/css" />
<style>
table{font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: black;
font-weight: bold;
}
</style>
<link href="../test_php/images/style.css" rel="stylesheet" type="text/css" />
<table border=1 summary="Abonnes" class="table" width="950px">
Cliquer sur le bouton de votre choix pour effectuer le tri, puis sélectionner une valeur dans le menu déroulant :<br/><br/>
<!-- nouveau code a toi de le mettre ou tu veux -->
<form name="abonne" method="POST">
<tr>
<td colspan=3 width="30%">
<input type="radio" name="choix" value="nom" onClick="this.form.submit()" <?php
if(isset($_POST['choix']))
{if($_POST['choix']=='nom') {echo 'checked';}}
?> >
Nom<br />
<input type="radio" name="choix" value="prenom" onClick="this.form.submit()" <?php
if(isset($_POST['choix']))
{if($_POST['choix']=='prenom') echo 'checked';}
?> >
Prenom<br />
<input type="radio" name="choix" value="ville" onClick="this.form.submit()" <?php
if(isset($_POST['choix']))
{if($_POST['choix']=='ville') echo 'checked';}
?> >
Ville<br />
<input type="radio" name="choix" value="csp" onClick="this.form.submit()" <?php
if(isset($_POST['choix']))
{if($_POST['choix']=='csp') echo 'checked';}
?> >
CSP
<!--
.
.
.
.
la tu peux ajouter des critere de recherche ou les supprimer selon tn choix -->
</td>
<td colspan=7 width="70%">
<select name="tri" onchange="this.form.submit()">
<option>selectionner une valeur
<?php
include("envoi.php");
if(isset($_POST["choix"]))
{
$id=$_POST["choix"];
$sql_choix = "select distinct(".$id.") from abonne ";
$req_choix=mysql_query($sql_choix) or die('Erreur SQL !<br />'.$sql_choix.'<br />'.mysql_error());
while($tab_choix=mysql_fetch_row($req_choix))
{
echo "<option >".$tab_choix['0'];
}
}
else
{echo "<option >";}
?>
</select>
</td>
</tr>
</form>
<!-- fin nouveau -->
<tr><th align="center">ID</th>
<th align="center">Civilité</th>
<th align="center">Nom </th>
<th align="center">Prenom </th>
<th align="center">Adresse </th>
<th align="center">Code Postal</th>
<th align="center">Ville</th>
<th align="center">Mail</th>
<th align="center">Tel</th>
<th align="center">CSP</th>
</tr>
<?php
if(isset($_GET["var"])){
$var = $_GET["var"];
}else{
$var = 'id';
}
// nouvelle condtion pour choix selon la selection
if(isset($_POST['tri']))
{
if($_POST['tri']!='')
{
$param=" where ".$_POST['choix']." = '".$_POST['tri']."'";
$query = "select * from abonne ".$param." order by $var ASC";
$res= mysql_query($query);
$count = mysql_num_rows($res)or die("BD vide :");
// param = parametre de recherche selon ; nom, prenom , ville ....
while($row = mysql_fetch_row($res)){
$id = $row[0];
$civilite= $row[1];
$nom= $row[2];
$prenom= $row[3];
$ad= $row[4];
$cp= $row[5];
$ville= $row[6];
$mail= $row[7];
$tel= $row[8];
$csp = $row[9];
?>
<tr><td align="center"><?php echo "$id"; ?></td>
<td align="center"><?php echo "$civilite"; ?></td>
<td align="center"><?php echo "$nom"; ?></td>
<td align="center"><?php echo "$prenom"; ?></td>
<td align="center"><?php echo "$ad"; ?></td>
<td align="center"><?php echo "$cp"; ?></td>
<td align="center"><?php echo "$ville"; ?></td>
<td align="center"><?php echo "$mail"; ?></td>
<td align="center"><?php echo "$tel"; ?></td>
<td align="center"><?php echo "$csp"; }}}?></td></tr></table>
Merci petite lune qui sent bon
-
-
Je vais éssayer en javascript alors.
Mais je finis dans 20min et après je rentre chez moi, donc si je sors pas ce soir je le finirais, sinon faudra attendre demain. :P -
Il te faudra plusieurs listes déroulantes alors.
Une pour ville, une pour cp et une pour csp. Est ce que tu en veux une pour nom, pour prénom ... ?
Je crois que je vois comment faire. Ca risque d'être un peu lourd mais ça devrait le faire. -
c'est quoi cette discusion vous ete en train de construire une avions ?????
-
-
@loute08Faut bien débuter un jour.
Moi ça fait près de 2ans que j'ai commencé mais un peu plus de 3 mois que j'aime ça. ^^
Donc maintenant je m'amuse et si je peux aider, alors je le fais. \o/
Bon pour ton problème, je ne sais pas quelle est la meilleure solution. Liste déroulante / champ vide /...
Tu as une préférence ?
Ton tuteur pourra juste choisir en fonction du métier .. ou plusieurs choses en même temps, comme par exemple métier et ville ? -
@MrSlaveEt bien je pense que l'idéal serait plusieurs choix comme là par exemple il m'avait demandé de trouver les professeurs du 08 donc...
-
@loute08Ok. Le mieux serait donc une checkbox. Comme ça il coche toutes les valeurs qu'il veut.
-
@MrSlaveOuai ce serait l'idéal sauf peut-être pours les CSP parce qu'il y en a 36 différents. donc c'estpour ça que je pensais à une liste déroulante
-
-
Tu as une idée de ce que tu veux faire ?
Pour comment le faire je peux peut être t'aider mais je suis trop endormi pour te dire quoi faire. :D-
Je voudrai qu'en fait mon tuteur ai une sorte de formulaire en disant quel utilisateur il recherche en indiquant s'il veut trouver tous les utilisateurs habitant telle ville ou les utilisateurs ayant tel métier...
Ici ce qu'on a fait c'est bien mais le problème c'est qu'il faut encore cherché dans toutes la liste ce que nous on cherche alors là ça va parce que dans ma BD yen a que 2 mais quand il y en aura plus...
-
-
Normal, il faut que tu remplace ' par " dans ton echo. ^^
-
Très pratique :
http://www.manuelphp.com/cours/cours.php?id=34 -
Parce que csp est le 9eme champ de ta bd (en sachant qu'on part de 0).
-
C'est déjà ça.
Pour les autres erreurs ça vient de ton while, il faut que tu rajoute $csp = $row[9]
Et <td>$csp</td> dans ton echo en dessous. -
https://php.developpez.com/faq/?page=correction_erreurs
Essaye de mettre des guillemets simples (') ou doubles (") autour de id. Mais moi je n'en ai pas et ça marche donc je ne sais pas trop.
Pour les autres erreurs je capte pas. Regarde le lien que j'ai mis, c'est pas compréhensible.-
Magnifique avec des guillemets simples autour de id on n'a plus le 1er message d'erreur maintenant j'ai ça :
ID Nom Prenom Code Postal Ville CSP
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 33
jonval
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 33
jonval
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 33
xx
-
-
Met :
<td>$nom</td>
<td>$csp</td>
</tr></table>" ;
Comme ça on pourra savoir exactement d'ou vient l'erreur.-
Notice: Use of undefined constant id - assumed 'id' in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 7
ID Nom Prenom Code Postal Ville CSP
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 33
jonval
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 33
jonval
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 33
xx
-
-
Euh ...
Pour l'erreur à la ligne 36, regarde à la ligne juste avant si tu as bien fermé tes balises.-
Oui tout est bien fermé :
1 <?php
2 include("envoi.php");
3
4 if(isset($_GET["var"])){
5 $var = $_GET["var"];
6 }else{
7 $var = id;
8 }
9 $query = "select * from abonne order by $var ASC";
10 $res= mysql_query($query);
11 $count = mysql_num_rows($res)or die("BD vide");
12 ?>
13 <table summary="Abonnes">
14 <tr><th><a href="tri_contact.php?var=id">ID</th>
15 <a href="tri_contact.php?var=nom">Nom </th>
16 <a href="tri_contact.php?var=prenom">Prenom </th>
17 <a href="tri_contact.php?var=cp">Code Postal</th>
18 <a href="tri_contact.php?var=ville">Ville</th>
19 <a href="tri_contact.php?var=csp">CSP</th>
20 </tr></table>
21
22
23 <?php
24 while($row = mysql_fetch_row($res)){
25 $id = $row[0];
26 $nom= $row[2];
27 $prenom= $row[3];
28 $cp= $row[5];
29 $ville= $row[6];
30
31 echo "<table><tr>
32 <td>$nom</td>
33 <td>$prenom</td>
34 <td>$cp</td>
35 <td>$ville</td>
36 <td>$nom</td> <td>$csp</td> </tr></table>" ;
37 }
38 ?>
-
-
Oahhhh putain je vais péter un câble. xD
Si je ne me trompe pas, à la ligne 36 tu as ?>, dans ce cas l'erreur vient soit d'un ; ou d'un } qui n'a pas été mis. Peut être même d'une balise non fermée (</..>).
Pour la première erreur je capte pas. En fait c'est que la variable est soit-disant non définie mais là elle l'est puisqu'on fait $var = ...
Tu n'aurais pas déjà $var dans un autre fichier ?-
Euhh alors ma ligne 36 c'est :
<td>$nom</td> <td>$csp</td> </tr></table>" ;
Pour récupérer les info du formulaire et donc remplir ma BD j'ai cette page de code :
<link href="images/style.css" rel="stylesheet" type="text/css" />
<div style="text-align: left;" class="news_text"><a href="main.php">Accueil</a> - <a href="?adr=contact3.php">Contactez-nous2</a>
<?php
$err=false;
$mes="";
if(isset($_POST["envoyer"]))
{
$mail=$_POST["mail"];
function testmail($mail)
{
$err=false;
$tab=explode("@" , $mail);
if (count($tab)!=2)
{
$err=true;
}
return $err;
}
if (isset($_POST["civilite"]) == FALSE)
{
$mes="Veuillez choisir votre civilité!";
$err=true;
}
else if(empty ($_POST["nom"]))
{
$mes="Le champs nom est vide !";
$err=true;
}
else if (empty ($_POST["prenom"]))
{
$mes="Le champs prénom est vide !";
$err=true;
}
else if (empty ($_POST["ad"]))
{
$mes="Le champs adresse est vide !";
$err=true;
}
else if (empty ($_POST["cp"]))
{
$mes="Le champs code postal est vide !";
$err=true;
}
else if (empty ($_POST["ville"]))
{
$mes="Le champs ville est vide !";
$err=true;
}
else if (empty ($_POST["mail"]))
{
$mes="Le champs mail est vide !";
$err=true;
}
else if (testmail($mail))
{
$mes="Le mail n'est pas valide !!! !";
$err=true;
}
else if (($_POST["csp"])=="selection")
{
$mes="Veuillez choisir votre csp !";
$err=true;
}
else if (empty ($_POST["tel"]))
{
$mes="Le champs téléphone est vide !";
$err=true;
}
else
{
$connex=mysql_connect('localhost','root','');
$bd=mysql_select_db("contact_site",$connex);
if ($connex==0)
{
echo "Echec connexion!";
}
else if ($bd==0)
{
echo "BD introuvable";
}
else
{
$civilite=$_POST["civilite"];
$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$ad=$_POST["ad"];
$cp=$_POST["cp"];
$ville=$_POST["ville"];
$mail=$_POST["mail"];
$tel=$_POST["tel"];
$csp=$_POST["csp"];
$sql="insert into abonne (civilite,nom,prenom,ad,cp,ville,mail,tel,csp) values ('".$civilite."','".$nom."','".$prenom."','".$ad."','".$cp."','".$ville."','".$mail."','".$tel."','".$csp."')";
$req=@mysql_query($sql,$connex)or die("erreur");
echo "<b>Vos cordonnées ont bien été envoyées !</b>";
}
}
}
?>
<?php if ($err=true) echo $mes."<br>"; ?>
<div style="text-align: center;" class="titre_page">Formulaire de contact</div>
<div class="mentions">Les champs avec * sont obligatoires</div>
<form method="POST" action="?adr=contact3.php">
<table>
<tr>
<td width="50%"><div align="left">Civilité</div></td>
<td width="50%" align="left">
<input type="checkbox" name="civilite" value="mme" /> Madame
<input type="checkbox" name="civilite" value="melle" /> Mademoiselle
<input type="checkbox" name="civilite" value="mr" /> Monsieur</td>
</tr>
<tr><td>Nom *</td>
<td align="left"><input type="text" name="nom" size=15 value="<?php if(isset($_POST["envoyer"])) echo $_POST["nom"];
?>"></td>
</tr>
<tr><td>Prénom *</td> <td align="left"><input type="text" name="prenom" size=15 value="<?php if(isset($_POST["envoyer"])) echo $_POST["prenom"];
?>"></td>
</tr>
<tr><td>Adresse * </td><td align="left"><input type="text" name="ad" size=50 value="<?php if(isset($_POST["envoyer"])) echo $_POST["ad"];
?>"></td></tr>
<tr><td>CP * </td><td align="left"><input type="text" name="cp" maxlength=5 size=5 value="<?php if(isset($_POST["envoyer"])) echo $_POST["cp"];
?>"></td></tr>
<tr><td>Ville * </td><td align="left"><input type="text" name="ville" size=50 value="<?php if(isset($_POST["envoyer"])) echo $_POST["ville"];
?>"></td></tr>
<tr><td>Mail* </td><td align="left"><input type="text" name="mail" size=70 value="<?php if(isset($_POST["envoyer"])) echo $_POST["mail"];
?>"></td></tr>
<tr><td>Tél. * </td><td align="left"><input type="text" name="tel" maxlength="10" size=10 value="<?php if(isset($_POST["envoyer"])) echo $_POST["tel"];
?>"></td></tr>
<tr><td>Profession *</td><td align="left"><select name="csp" id ="csp">
<option value="selection" selected="selected">Sélectionner votre CSP</option>
<option value="agriculteurs exploitants">Agriculteurs exploitants</option>
<option value="artisans">Artisans</option>
<option value="Commercants et assimiles">Commerçants et assimilés</option>
<option value="chef entreprise 10 sal ou +">Chefs d'entreprise de 10 salariés ou plus</option>
<option value="professions liberales et assimilees">Professions libérales et assimilées</option>
<option value="cadre fonction publique">Cadres de la fonction publique</option>
<option value="profs, professions scientifiques">Professeurs, professions scientifiques</option>
<option value="professions de l'info, arts, spectacles">Professions de l'information, des arts et des spectacles</option>
<option value="cadres administratifs et commerciaux d'ent">Cadres administratifs et commerciaux d'entreprises</option>
<option value="ingénieurs et cadres techniques d'ent">Ingénieurs et cadres techniques d'entreprises</option>
<option value="prof des écoles, instit et professions ass">Professeurs des écoles, instituteurs et professions assimilées</option>
<option value="professions intermédiaires de la sante et du travail social">Professions intermédiaires de la santé et du travail social</option>
<option value="professions intermediaires administratives de la fonction publique">Professions intermédiaires administratives de la fonction publique</option>
<option value="professions intermediaires administrativres et commerciales des entreprises">Professions intermédiaires administratives et commerciales des entreprises</option>
<option value="techniciens (sauf techniciens tertiaires)">Techniciens (sauf techniciens tertiaires)</option>
<option value="contremaitres, agents de maitrise (maitrise administrative exclue)">Contremaîtres, agents de matrise (maîtrise administrative exclue)</option>
<option value="employes civils et agents de service de la fonction publique">Employés civils et agents de service de la fonction publique</option>
<option value="agents de surveillance (policiers etc.)">Agents de surveillance (policiers etc.)</option>
<option value="employes administratifs d'entreprise">Employés administratifs d'entreprise</option>
<option value="employes de commerce">Employés de commerce</option>
<option value="personnels des services directs aux particuliers">Personnels des services directs aux particuliers</option>
<option value="ouvriers qualifies de type industriel">Ouvriers qualifiés de type industriel</option>
<option value="ouvriers qualifies de type artisanal">Ouvriers qualifiés de type artisanal</option>
<option value="chauffeurs">Chauffeurs</option>
<option value="ouvriers qualifies de la manutention, du magasinage et du transport">Ouvriers qualifiés de la manutention, du magasinage et du transport</option>
<option value="ouvriers agricoles et assimiles">Ouvriers agricoles et assimilés</option>
<option value="ouvrier qualifie">Ouvriers qualifiés</option>
<option value="ouvrier non qualifie">Ouvriers non qualifiés</option>
<option value="retraite agriculteur exploitant">Retraités agriculteurs exploitants</option>
<option value="retraite artisan, commerc., chef d'entreprise">Retraité artisan, commercial, chef d'entreprise</option>
<option value="retraite cadre, profession intermediaire">Retraité cadre, profession intermédiaire</option>
<option value="retraite employe, ouvrier">Retraité employé, ouvrier</option>
<option value="chomeur n'ayant jamais travaille">Chômeurs n'ayant jamais travaillé</option>
<option value="personne sans activite professionnelle">Personnes sans activité professionnelle</option>
<option value="non renseignee">Non renseignée </option>
</select></td></tr>
<tr><td><input type="submit" value="Envoyer" name="envoyer"></td> <td align="left"><input type="submit" name="reset" value="Effacer" /></td></tr>
</table>
</form>
</div>
-
-
Je sais. J'avais eu quelques problèmes également mais très vite réglés.
Là j'ai la même chose que toi et ça marche.
On va tenter les derniers trucs maintenant. ^^
A la place de $var = nom; met $var = id;-
Ca donne ça :
Notice: Use of undefined constant id - assumed 'id' in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 7
ID
Nom
Prenom
Code Postal
Ville
CSP
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 36
jonval claire 8000 Villers-Semeuse jonval
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 36
jonval remi 8000 charleville jonval
Notice: Undefined variable: csp in E:\Stage\EasyPHP 2.0b1\www\tri_contact.php on line 36
xx xx 0 xx xx
-
-
Ils n'auront rien à faire.
Le tableau sera affiché avec les en-têtes comme lien. La seule chose qu'ils auront à faire c'est cliquer sur le titre de la colonne pour trier le tableau selon cette colonne. -
J'ai éssayé avec une liste déroulante et je me suis trop fait chier pour ne pas réussir. -_-"
Mais c'est peut être plus simple, tout dépend de toi. -
Pour avoir csp il faut que tu rajoute :
$csp = $row[9] et <td>$csp</td>
L'erreur vient peut être de ta Bd.
Vu que tu as mis NOT NULL pour civilité mais tu ne le rempli par pour certaines personnes.
Essaye en enlevant le NOT NULL ou en ajoutant quelque chose. -
remplace :
$var = $_GET["var"];
5 if(!isset($_GET["var"])){
6 $var = nom;
7 }
par :
if(isset($_GET["var"])){
$var = $_GET["var"];
}else{
$var =nom;
}
Est ce qu'à un endroit entre les erreurs il affiche BD vide ? -
Essaye :
1 <?php
2 include("envoi.php");
3
4 $var = $_GET["var"];
5 if(!isset($_GET["var"])){
6 $var = nom;
7 }
8 $query = "select * from abonne order by $var ASC";
9 $res= mysql_query($query);
$count = mysql_num_rows($res)or die("BD vide");
10 ?>
11 <table summary="Abonnes">
12 <tr><th><a href="tri_contact.php?var=id">ID</th>
13 <a href="tri_contact.php?var=nom">Nom </th>
14 <a href="tri_contact.php?var=prenom">Prenom </th>
15 <a href="tri_contact.php?var=cp">Code Postal</th>
16 <a href="tri_contact.php?var=ville">Ville</th>
17 <a href="tri_contact.php?var=csp">CSP</th>
18 </tr></table>
19
20
21 <?php
22 while($row = mysql_fetch_row($res)){
23 $id = $row[0];
24 $nom= $row[2];
25 $prenom= $row[3];
26 $cp= $row[5];
27 $ville= $row[6];
28 echo "<table><tr>
29 <td>$nom</td>
30<td>$prenom</td>
31 <td>$cp</td>
32 <td>$ville</td>
33 <td>$nom</td> </tr></table>" ;
34 }
35 ?>
Je dois avouer que je sèche un peu là.
J'ai mon code sous les yeux et il est quasiment identique. J'ai peut être oublié un truc.
Met celui là quand même. J'ai fait 2/3 modifs, ça ira peut être mieux.
- 1
- 2
- 3