SQL select where une partie du champ
Résolu/Fermé
Vleeks
-
Modifié par Vleeks le 17/12/2012 à 21:52
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 18 déc. 2012 à 17:54
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 18 déc. 2012 à 17:54
A voir également:
- Sql selectionner une partie d'un champ
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Sélectionner texte pdf - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Extraire une partie de video - Guide
- Sql lister les tables ✓ - Forum Programmation
7 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
17 déc. 2012 à 22:12
17 déc. 2012 à 22:12
Pour faire passer plusieurs paramètres en ayant la possibilité de les dissociés par la suite, il faut, en sortant du formulaire, que la valeur de la variable soit structurée, par exemple, comme ceci:
Avant d'aller rechercher l'enregistrement correspondant dans la base de données, il vous suffit de splitter cette variable en ... plusieurs (ici deux). Vous aurez donc, par exemple, la variable LePrenom qui contiendra "Jean" et la variable LeNom qui contiendra "Dujardin".
Le principe du "split" en php est le suivant:
Variable = "Jean|Dujardin"Noter le caractère spécial, le pipe, entre le nom et le prénom.
Avant d'aller rechercher l'enregistrement correspondant dans la base de données, il vous suffit de splitter cette variable en ... plusieurs (ici deux). Vous aurez donc, par exemple, la variable LePrenom qui contiendra "Jean" et la variable LeNom qui contiendra "Dujardin".
Le principe du "split" en php est le suivant:
$Variable = "Jean|Dujardin"; $Separes = explode("|", $Variable); - $Separes[0]; // contiendra "Jean" - $Separes[1]; // contiendra "Dujardin"
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
18 déc. 2012 à 10:37
18 déc. 2012 à 10:37
Bonjour Vleeks,
Le split marche bien : ok
Est-ce que ceci
Le split marche bien : ok
Est-ce que ceci
$strSQL = sprintf("SELECT * FROM personnes WHERE nomPersonne = '%s' AND prenomPersonne='%s'", mysql_real_escape_string($splitInfo[0]), mysql_real_escape_string($splitInfo[1]));affiche quelque chose ?
Oui, mais le problème est que je n'ai pas la possibilité de placer un "|" entre mes deux informations. Etant donné que je récupère l'information du premier formulaire sous forme de $_POST, j'ai donc essayé de split avec comme marque plus un "|" mais un simple espace " ", mais ca ne marche pas.
Avez-vous une autre solution, plutôt au niveau de la requête ?
Merci beaucoup
Avez-vous une autre solution, plutôt au niveau de la requête ?
Merci beaucoup
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
17 déc. 2012 à 23:03
17 déc. 2012 à 23:03
Il faut concaténer le nom et le prenom avec le "pipe" AVANT que le formulaire ne l'envoie ..
Il faut utiliser un caractère que l'on ne retrouve ni dans un no ni dans un prénom : "Madame de Betancout" contient un espace !!!
Il faut utiliser un caractère que l'on ne retrouve ni dans un no ni dans un prénom : "Madame de Betancout" contient un espace !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok donc j'ai concatené mon information comme Heliotte m'a conseillé :
<?php $nomrecup = $_POST['info_form'];
$splitInfo = explode("|", $nomrecup);
- $splitInfo[0];
- $splitInfo[1]; ?>
J'aimerais donc, qu'à partir du nom ($splitInfo[0], ma base de donnée arrive à me ressortir différentes informations :
<?php
mysql_connect("localhost", "root", "") or die (mysql_error ());
mysql_select_db("ma_base") or die(mysql_error());
$strSQL = "SELECT * FROM personnes WHERE nomPersonne = ".$splitInfo[0]." ";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)) {
?>
<option><?php echo $row['Adresse1'];?></option>
<option><?php echo $row['Adresse2'];?></option>
J'ai ensuite fermé la base, mais rien ne s'affiche dans ma liste déroulante...
sachant que dans ma requête, nomPersonne ne contient que le nom de la personne, le prénom est stocké dans "prenomPersonne", mais je n'en ai pas besoin ici.
Le split marche bien, j'ai fait un echo pour voir si l'information avait bien été splitée.
Merci beaucoup !
<?php $nomrecup = $_POST['info_form'];
$splitInfo = explode("|", $nomrecup);
- $splitInfo[0];
- $splitInfo[1]; ?>
J'aimerais donc, qu'à partir du nom ($splitInfo[0], ma base de donnée arrive à me ressortir différentes informations :
<?php
mysql_connect("localhost", "root", "") or die (mysql_error ());
mysql_select_db("ma_base") or die(mysql_error());
$strSQL = "SELECT * FROM personnes WHERE nomPersonne = ".$splitInfo[0]." ";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)) {
?>
<option><?php echo $row['Adresse1'];?></option>
<option><?php echo $row['Adresse2'];?></option>
J'ai ensuite fermé la base, mais rien ne s'affiche dans ma liste déroulante...
sachant que dans ma requête, nomPersonne ne contient que le nom de la personne, le prénom est stocké dans "prenomPersonne", mais je n'en ai pas besoin ici.
Le split marche bien, j'ai fait un echo pour voir si l'information avait bien été splitée.
Merci beaucoup !
salut
MERCI !
Ça fonctionne à merveilles, j'ai juste modifié la requête afin que la recherche ne se base que sur le nom, et pas sur le prénom, car si l'utilisateur fait une erreur dans son formulaire (un espace mal placé), tout tombe en ruine.
Je vous souhaite d'excellentes fêtes et encore merci !
Vleeks
MERCI !
Ça fonctionne à merveilles, j'ai juste modifié la requête afin que la recherche ne se base que sur le nom, et pas sur le prénom, car si l'utilisateur fait une erreur dans son formulaire (un espace mal placé), tout tombe en ruine.
Je vous souhaite d'excellentes fêtes et encore merci !
Vleeks
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
18 déc. 2012 à 17:54
18 déc. 2012 à 17:54
Bonsoir Vleeks,
Heureux de vous avoir rendu service, Heliotte
ps: Bonne fête de fin d'année à vous aussi
Heureux de vous avoir rendu service, Heliotte
ps: Bonne fête de fin d'année à vous aussi
\\|// {0,0}