Mon entrée est pour le convertir. P> mon filtre strong> p> J'essaie d'obtenir les données que Comme vous pouvez le voir, j'ai essayé d'imprimer Le J'ai essayé de changer cette ligne et j'obtiens toutes les données que J'ai imprimé mon la requête correcte doit être p> '[société_a, société_b, société_c]' code> qui est une chaîne et je dois déjà utiliser
fournisseurs code> égaux à
$ Array [0] code>,
$ Array [1] code>,
$ Array [2] code> qui est
société_a, société_b, société_c code>. Mon
Fournisseurs CODE> est le format JSON, donc j'utilise
comme code> et
% code> pour la correspondre. En faisant que j'utilise une boucle pour le faire, mais je ne peux obtenir aucune donnée. p>
Count ($ array) code> et la valeur est
3 code>.
et
echo $ array [$ i] code> =
société_a, société_b, société_c code>
Qui est correspondant avec mon entrée. P>
$ Query-> où («fournisseurs», «comme», [$ i]. % ']); code> à
$ requérant-> où ("fournisseurs", "comme", ["%". $ TRAY [0].'% ']); > p>
fournisseur code> =
société_a code> qui est ma première entrée (alors je suppose que mes codes sont des œuvres.
Mais pourquoi le tableau
$ [$ I] code> ne fonctionne pas? P>
echo $ $ -> tosql (); code>
et c'est ce que j'ai p>
3 Réponses :
Le meilleur moyen de déboguer les requêtes SQL défaillants consiste à examiner le journal de requête:
https://laravel.com/docs/5.0/database#query-logging p>
Bien que vous ayez peut-être raison, cela ne répond à peine à la question de l'OP ...
Vous pouvez faire de 2 façons.
1) p>
@overflowstack c'est le même code que le vôtre mais avec une pourbeach. Cela fonctionne si vous le mettez correctement correctement.
@overflowstack vous pouvez marquer cette réponse correcte, si sa résolution de votre requête.
@Navedramzan non, je ne peux pas obtenir de données à l'aide de ce code
AT LINE ECHO $ A A CODE> Pouvez-vous voir une sortie ou une valeur?
oui votre code est identique avec mon code, tableau stocké l'entrée mais ne peut pas obtenir le résultat
Veuillez consulter la question mise à jour et vérifier la requête imprimée de quelle requête que nous avons à la fois est SELECT * à partir de bonus_company où les bonus.id = bonus_company.fk_bonus_id et fournisseurs =? et fournisseurs =? code> mais la requête correcte et logique doit être
Sélectionnez * à partir de bonus_company où des bonus.id = bonus_company.fk_bonus_id et (fournisseurs comme? ou des fournisseurs comme?) Code>
Voici la table de base de données SQL
$string = "company_A, company_B"; //string of company names you want to search $array = explode( ",", $string); //convert string to array $i = 1; $qry = "SELECT * from `company` "; foreach($array as $companyName) { if($i <= 1){ $qry .= " WHERE `providers` LIKE '%".trim($companyName)."%' "; } else { $qry .= " OR `providers` LIKE '%".trim($companyName)."%' "; } $i += 1; } $result = mysqli_query($connection, $qry); $companies = mysqli_fetch_assoc($result); foreach ($companies as $companyName){ echo $companyName; }
Puis-je savoir ce que le C code> se référer à?
Et où est la $ entreprises code> et
Connection $ code> vient?
C est l'alias de table utilisée pour donner un nom temporaire. Pour plus de détails => dev.mysql.com/doc /refman/8.0/fr/problems-with-alias.html et $ entreprises viennent de la base de données
Donc, je n'ai pas besoin de la boucle pour faire ça?
Oui, si vous voulez que toutes les sociétés correspondantes, ils nécessitent une boucle. Vouliez-vous que le nom du fournisseur de trous (Nom des entreprises)?
ya je veux un ensemble correspondant au nom du fournisseur
BTW Voulez-vous voir ma question mise à jour? J'ai posté la requête imprimée là-bas, cela pourrait vous fournir un peu plus de détails
Que vous devez organiser conformément à votre exigence ici, je donne une réponse conceptuelle, espérons que je suis facile à convoiter dans votre exigence, j'ai expliqué la base de la requête SQL fusionnée avec PHP.
thx beaucoup mec, tu as sauvé ma journée, ça marche exactement comme je le voulais
Laissez-nous Continuez cette discussion en chat .
Vous pouvez faire de deux manières. Au lieu d'exploser par virgule, vous pouvez utiliser la même chaîne dans
dans la clause code> de la requête de base de données. Ou vous pouvez utiliser
foreach code> au lieu de
pour ($ i = 0; $ i <$ j; $ i ++) { code>
@Navedramzan Sry, pas comprendre
Question mise à jour
J'ai ajouté une réponse
"Mes fournisseurs Le champ est le format JSON, donc j'utilise comme et% pour le faire correspondre." I> - Terrible. Utilisez la fonctionnalité JSON fournie par le SGBD - ou stockez les données dans un format / structure différent. La pêche dans Json en utilisant comme n'est pas meilleure que de stocker de bonnes données (mauvaises) anciennes de la virgule classique dans des champs uniques.
fournisseurs =? Et fournisseurs =? Code> est bizarre. Vous ne pouvez pas avoir la même colonne égale à plusieurs valeurs distinctes en même temps. Essayez ou au lieu de et.