PHP Fonction Split()
Résolu
dubuducu
Messages postés
395
Statut
Membre
-
JB_A Messages postés 307 Statut Membre -
JB_A Messages postés 307 Statut Membre -
Bonjour,
je souhaiterai savoir s'il est possible de faire ceci :
je voudrais, pour des raisons diverses, recuperer les infos de formulaires de ma base sql a l'aide d'une interface ou l'utilisateur entre par exemple l'id :
EX: Devis n° : 29,25,16,34
Submit
Ces données sont separées par des virgules et je souhaiterai savoir quelle genre de requete je devrai faire .
Merci !
Dois-je utiliser la fonction explode ou split ?
De plus je ne sais pas comment les utiliser ... et oui je suis nul :)
Merci de votre aide qui me sera tres precieuse
je souhaiterai savoir s'il est possible de faire ceci :
je voudrais, pour des raisons diverses, recuperer les infos de formulaires de ma base sql a l'aide d'une interface ou l'utilisateur entre par exemple l'id :
EX: Devis n° : 29,25,16,34
Submit
Ces données sont separées par des virgules et je souhaiterai savoir quelle genre de requete je devrai faire .
Merci !
Dois-je utiliser la fonction explode ou split ?
De plus je ne sais pas comment les utiliser ... et oui je suis nul :)
Merci de votre aide qui me sera tres precieuse
Configuration: Windows XP Internet Explorer 6.0
7 réponses
-
Avec explode oui. Tu récupères ensuite un tableau.
un exemple :<?php $numero="12,23,34,45"; $array=explode(",",$numero); echo $array[0]; //affiche 12 echo $array[1]; //affiche 23 echo $array[2]; //affiche 34 echo $array[3]; //affiche 45 ?>
Plus d'infos sur explode : http://www.manuelphp.com/php/function.explode.php -
Merci beaucoup
je ne comprends pas tout : a quoi correspond cette ligne ?$numero="12,23,34,45";
je souhaiterai que ce soit des nombres aléatoires que l'utilisateur a envi de rentrer ... le 48 ou le 22 si cela lui fait plaisir
Merci -
Bah c'est ton numéro de devis. Je suppose qu'il est attribué automatiquement par le reste du script php.
Si tu veux que l'on reprenne exactement ton exemple ça donne : $numero="29,25,16,34"; -
je ne pense pas avoir eté clair ou alors c'est moi qui suis débile ...
mes devis rentrent d'eux meme dans la base et vont du devis n°1 a 800 par exemple aujourdui
je souhaiterai afficher le 18,24,32 pour les consulter.et demain le 34 et 56!
aparament ici :$numero="12,23,34,45";
est fixe !!
je te passe un bout de mon code :
dans admin.phpje souhaiterai avoir la zone de texte qui me permet de rentrer les devis
et voici liste.php qui me les affiche.
Merci<?php session_start(); include('bdd.php'); $b = $_POST['thematique_projet']; $_SESSION['b'] = $b; $k = $_SESSION['k']; if ( ($a == 'null')) { if ($b == 'null') { $sql = "SELECT * FROM devis_table WHERE sous_categorie = '" . $k . "' ORDER BY '" . $a ."' "; $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); } else $sql = "SELECT * FROM devis_table WHERE thematique_projet = '" . $b . "' ORDER BY '" . $a ."' "; $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); } else { $sql = "SELECT * FROM devis_table WHERE departement = '" . $a . "' AND thematique_projet = '" . $b . "' ORDER BY '" . $a ."' "; $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); } if ( $thematique_projet == 'null') { echo"<b><center>Votre Recherche porte sur <br> $k / Toutes les Thematiques <br><br><br></center></b>\n"; } else { echo"<b><center>Votre Recherche porte sur <br> $k / $thematique_projet <br><br><br></center></b>\n"; } if($result) { // debut du tableau echo '<form action="confirmation.php" method="post">'; echo '<font size="2" face="Arial" >'; echo '<table bgcolor="#FFFFFF" border="0" align="center">'."\n"; // première ligne on affiche les titres dans 4 colonnes echo '<tr>'; echo '<td width="80" bgcolor="#3366ff"><b><u><font color="#FFFFFF">Devis n° :</font></u></b></td>'; echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Département </font></u></b></td>'; echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Commentaires</font></u></b></td>'; echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Clics Restants</font></u></b></td>'; echo '<td bgcolor="#3366ff"><b><u></u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne. $i=0; $timeout = 604800; $heure = time(); while($row = mysql_fetch_array($result)) { if ( ( $heure < ($row['time'] + $timeout )) || ( $row['time'] == "0" )) if ( $row['clic'] != "0" ) { { echo '<tr>'; echo '<td width="80" bgcolor="#e8e2e2">'.$row[id].'</td>'; echo '<td bgcolor="#e8e2e2">'.$row[departement].'</td>'; echo '<td bgcolor="#e8e2e2">'.$row[commentaires].'</td>'; echo '<td bgcolor="#e8e2e2">'.$row[clic].'</td>'; echo '<td><input type="checkbox" name="option'.$i.'" value="'.$row[id].'">acheter</td>'; echo '</tr>'; $i = $i+1; echo '<tr>'; echo '<td></td>'; echo '<td bgcolor="#e8e2e2"><h5><i>Ajouté le :<br> </h5></i></td>'; echo '<td bgcolor="#e8e2e2"><h5><i>'.$row[Date].'</h5></i></td>'; echo '<td bgcolor="#e8e2e2"><h5><i>'.$row[objet_message2].'</h5></i></td>'; echo '<td></td>'; echo '</tr>'; echo '<input type="hidden" name="variable" value="'.$i.'">'; } } } echo '</table>'."\n"; echo "<input type='submit' value='Commander Devis' /></form>"; echo '</font>'; // fin du tableau. } else { echo 'Pas d\'enregistrements dans cette table...'; } ?>
Pour le moment mes requetes font un affchage en fonction de deux parametres.je les changerai par la suite pour mettre en fonction de l'id saisi par l'utilisateur voyez vous ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
C'est difficile de voir comment marche le bin's avec un unique bout de script. Mais je comprends pas vraiment :
L'utilisateur rentre dans un formulaire les numéros des devis à afficher par exemple 12,45,78,65 c'est ça ? (voir https://www.commentcamarche.net/contents/493-formulaires-html-cours-et-exemples pour ce faire)
Et ensuite, ce qu'on souhaite c'est les afficher ?
Dans ce cas, récupère les numéros de chaque devis à afficher avec une variable par numéro (comme ci-dessus, mais avec une boucle for() ou while() pour que ça marche quel que soit le nombre de devis à afficher), et ensuite connecte-toi à la base pour demander les devis en question. Pour cela il faut que tu comprennes exactement ce qu'effectue liste.php sinon ce n'est même pas pensable. Il faut savoir à quoi correspondent $a, $b, $k ... -
JB_A, tu me dis de recuperer les numeros mais ceux ci sont séparés par des virgules ... si je met where ID = ($list) cela va me poser une probleme si je veux recuperer 4 devis avec les id separés par les virgules .. ?
-
alors voici :
dans index2.php:<? session_start(); include('bdd.php'); echo '<form action="liste2.php" method="post">'; echo '<tr>'; echo '<td>'; echo '<font color="#FFFFFF" size="3" face="Century Gothic">'; echo '<td bgcolor="#3366ff"><b><u><font color="#FFFFFF">Numeros</font></u></b></td>'; echo '<input name="saisie" style="width:203; font-weight:700; height:22" size="25"></font>'; echo '</td>'; echo '</tr>'."\n"; $decoupe = explode(",",$saisie); echo "<input type='submit' value='afficher devis' /></form>"; ?>
dans liste2.php:<?php session_start(); include('bdd.php'); $tre = $_POST['saisie']; echo "$tre"; $sql = "SELECT clic FROM devis_table WHERE id IN ('$tre') "; $result = mysql_query( $sql) or die( "Erreur : " . mysql_error() ); if($result) { echo '<table>'; echo '<tr>'; echo '<td width="80" bgcolor="#3366ff"><b><u><font color="#FFFFFF">Devis n° :</font></u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td width="80" bgcolor="#e8e2e2">'.$row[clic].'</td>'; echo '</tr>'; } } else { echo 'Pas d\'enregistrements dans cette table...'; } echo '</table>'; ?>
Voici, il m'affiche 12,25 si je tape 12,25 mais la requete ne fonctionne pas-
Il ne faut pas mettre de guillemet à $tre.
Chez moi, le SQL me renvoie bien 3 enregistrements :
SELECT fjs_ticket_id, fjs_categoryticket_libelle, fjs_state_libelle, fjs_ticket_date_created, fjs_inus_prenom, fjs_inus_nom, fjs_ticket_userid, fjs_ticket_comment, fjs_ticket_contournement, fjs_ticket_soluce FROM tjs_ticket, tjs_state, tjs_category_ticket, tjs_internal_user WHERE fjs_ticket_userid = fjs_inus_id AND fjs_ticket_stateid = fjs_state_id AND fjs_ticket_categorid = fjs_categoryticket_id AND fjs_ticket_id IN ( 2, 3, 5 )
Pour info : https://www.w3schools.com/sql/sql_in.asp
@ +
-