-3
votes

Comment chercher enregistrer de nombreux identifiants sur une requête unique

Ceci est ma table. Lorsque le terminé est cliqué, il choisit les identifiants de la case à cocher cochée et affiche dans une zone de texte. Sur la touche PDF, cliquez dessus publie l'entrée de la zone de texte sur une autre page:

 Entrez la description de l'image ici

Donc, je veux récupérer les détails de tous les identifiants mais mon code Montrez uniquement le résultat du premier identifiant xxx

ceci est mon formulaire xxx


6 commentaires

Little Bobby dit Votre script est à risque d'attaques d'injection SQL. . Même échapper à la chaîne n'est pas en sécurité!


Jetez un coup d'œil à la syntaxe in () dans le manuel MySQL, pour remplacer votre =


Vous devez utiliser une déclaration préparée avec des variables liées. Et vous ne pouvez pas utiliser = pour cela, vous auriez besoin de in () ou wind_in_set () .


Où est la forme / html pour cela et le schéma de base de données avec des valeurs? Votre question n'est pas claire.


Vous continuez à commenter sous la deuxième réponse, mais ne rien dire dans le premier. J'ai demandé plus de code mais vous choisissez de rester silencieux. Vous êtes venu ici demandant de l'aide, alors aidez-nous à nous aider.


désolé monsieur je mette à jour la rupture maintenant


3 Réponses :


0
votes

Vous utiliseriez une instruction dans dans votre requête SQL, avec un groupe séparé par des virgules de l'ID: xxx

avertissement: Little Bobby dit Votre script est à risque d'attaques d'injection SQL. . Même échapper à la chaîne n'est pas en sécurité!

En savoir plus sur Préparé déclarations pour MySQLI . Spécifiquement pour dans Utiliser Ces instructions


2 commentaires

Je soupçonne $ _ post ['allids'] == "695 392" . La déclaration préparée fournira où order_id in ('695,392') ce qui est faux.


Que voulez-vous dire @CID? J'ai réussi à produire des variables séparées par des virgules pour une utilisation dans dans les déclarations tout le temps.



-2
votes

Vous pouvez y parvenir avec:

if (isset($_POST['allids'])) {
 $query = "SELECT * FROM tbl_order
 WHERE order_id in('".$_POST['allids']."')";
 $result = mysqli_query($conn, $query);

 while($row = mysqli_fetch_array($result))
 {
  echo $row['order_no']."</br>";
  echo $row['ordercustomer_name']."</br>";
 }

}


4 commentaires

Convertir l'entrée de cette variable $ _Post ['Allids'] comme '695.392'


Comment puis-je convertir s'il vous plaît expliquer


@Ankitkumar Vous créez une seule chaîne '695,392' qui à MySQL ressemble à une seule valeur. Vous devez créer un tableau à partir de l'identifiant, il semble donc que '695', '392'


donnez-moi un exemple



-2
votes

Maintenant son travail bien merci à vous tous xxx


2 commentaires

Il n'y a aucun moyen que cela fonctionne comme vous passez une seule chaîne de chiffres ( $ ID ) à la requête.


Eh bien, cela peut fonctionner car ce n'est pas paramétré. C'est plutôt mauvais et dangereux, mais cela peut fonctionner. $ id = "1,2,3"; -> "in ($ id)" donne "in (1,2,3)" . Bonne chance de faire confiance aux intrants de votre utilisateur. Pourquoi écrirait-on un code de pute anti-balle lorsque vous pouvez passer des nuits à réparer des violations de sécurité facilement évitées dans la production.