recherche

Maison  >  Questions et réponses  >  le corps du texte

Vous souhaitez afficher uniquement les lignes avec la valeur sélectionnée en utilisant SQL et PHP

<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粉007288593P粉007288593507 Il y a quelques jours639

répondre à tous(2)je répondrai

  • P粉939473759

    P粉9394737592023-09-03 12:39:23

    Remplacez votre requête par

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

    répondre
    0
  • P粉317679342

    P粉3176793422023-09-03 09:21:49

    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

    répondre
    0
  • Annulerrépondre