Vous souhaitez afficher uniquement les lignes avec la valeur sélectionnée en utilisant SQL et PHP
P粉007288593
P粉007288593 2023-09-02 15:25:33
0
2
600
<p>J'ai 40 fournisseurs et 10 000 produits, mais je souhaite afficher 1 produit de chaque fournisseur</p> <table class="s-table"> <tête> <tr> <th>Marque</th> <th>Fournisseur</th> <th>Produits</th> <th>URL</th> ≪/tr> ≪/tête> <corps> <tr> <td>Éclair</td> <td>Jeu pragmatique</td> <td>Mme Destin</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Isoftbet</td> <td>Halloween Jack</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Jeu pragmatique</td> <td>Sweet Bonanza</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Isoftbet</td> <td>Sécurité tropicale</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Réseau</td> <td>Royal Potato</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Réseau</td> <td>Mme Destin</td> <td>Lien</td> ≪/tr> </tcorps> </tableau> <p>Voici ma table SQL actuelle.Mais je souhaite afficher 1 élément par fournisseur, par exemple : </p> <table class="s-table"> <tête> <tr> <th>Marque</th> <th>Fournisseur</th> <th>Produits</th> <th>URL</th> ≪/tr> ≪/tête> <corps> <tr> <td>Éclair</td> <td>Jeu pragmatique</td> <td>Mme Destin</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Isoftbet</td> <td>Halloween Jack</td> <td>Lien</td> ≪/tr> <tr> <td>Éclair</td> <td>Réseau</td> <td>Royal Potato</td> <td>Lien</td> ≪/tr> </tcorps> </tableau> <p>Voici mon code `</p> <pre class="brush:php;toolbar:false;"><?php /* Tentative de connexion au serveur MySQL en supposant que vous exécutez MySQL. serveur avec paramètre par défaut (utilisateur 'root' sans mot de passe) */ $link = mysqli_connect("localhost", "newuser1", "p,+Dn@auTD3$*G5", "newdatabse"); // Vérifier la connexion si($lien === faux){ die("ERREUR : Impossible de se connecter. " . mysqli_connect_error()); }// Tentative d'exécution d'une requête de sélection $sql = "SELECT * FROM tablename WHERE Brand='Coolcasino' et Provider IN ('Pragmatic Play', 'Isoftbet', 'Netent') ;"; si($result = mysqli_query($link, $sql)){ si(mysqli_num_rows($result) > 0){ echo "<table>"; écho "<tr>"; echo "<th> Marque</th>"; echo "<th> Fournisseur</th>"; echo "<th>Produit</th>"; echo "<th>URL</th>"; écho "</tr>"; while($row = mysqli_fetch_array($result)){ écho "<tr>"; écho "<td>" . $row['Marque'] . "≪/td>" ; écho "<td>" . $row['Fournisseur'] . "≪/td>" ; écho "<td>" . $row['Produit'] . "≪/td>" ; écho "<td>" . $ligne['URL'] . "≪/td>" ; écho "</tr>"; } echo "</table>"; // Ferme le jeu de résultats mysqli_free_result($result); } autre{ echo "Aucun enregistrement correspondant à votre requête n'a été trouvé."; } } autre{ echo "ERREUR : Impossible d'exécuter $sql. " . mysqli_error($lien); } // Fermer la connexion mysqli_close($lien); ?>≪/pré> <p>如果有人可以的话请帮助我`</p>
P粉007288593
P粉007288593

répondre à tous(2)
P粉939473759

Remplacez votre requête par

$sql = "SELECT * FROM tablename WHERE Brand='Coolcasino' and Provider IN ('Pragmatic Play','Isoftbet','Netent') GROUP BY  Provider;";
P粉317679342

Utilisez le numéro de ligne :

select Brand,
       Provider,
       Product,
       URL
from (   select Brand,
                Provider,
                Product,
                URL,
                row_number() over(partition by Provider order by rand()) as row_num
         from tablename
         where Brand='Lightning' 
         and Provider IN ('Pragmatic Play','Isoftbet','Netent') 
      ) as rand_prod
where row_num=1;

https://dbfiddle.uk/BGzx6cYY

Remarque, je recommande de ne pas utiliser select * et de sélectionner uniquement les colonnes dont vous avez vraiment besoin

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal