recherche

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

Obtenez un seul résultat de la base de données en utilisant MySQLi

<p>C'est la première fois que j'essaie d'utiliser MySQL. Je l'ai fait dans le cas d'une boucle. Les résultats de la boucle s'affichent, mais lorsque j'essaie d'afficher un seul enregistrement, il reste bloqué. Ci-dessous le code de la boucle, cela fonctionne. </p> <pre class="brush:php;toolbar:false;"><?php //Se connecter à la base de données $hostname="localhost"; $database="monnomdebase"; $username="racine"; $mot de passe=""; $conn = mysqli_connect($nom d'hôte, $nom d'utilisateur, $mot de passe, $base de données); ?> <?php $query = "SELECT ssfullname, ssemail FROM userss ORDER BY ssid"; $result = mysqli_query($conn, $query); $num_results = mysqli_num_rows($result); ?> <?php /* Parcourez chaque ligne et affichez les enregistrements */ pour($i=0; $i<$num_results; $i++) { $row = mysqli_fetch_assoc($result); ?> Nom : <?php print $row['ssfullname'] ?> <br /> E-mail : <?php print $row['ssemail'] ; <br /><br /> <?php // fin de la boucle } ?>≪/pré> <p>Comment puis-je afficher un seul enregistrement, n'importe quel enregistrement comme un nom ou une adresse e-mail, à partir de la première ligne ou autre, juste un seul enregistrement, comment puis-je faire cela ? En cas d'enregistrement unique, envisagez de supprimer la partie boucle ci-dessus et affichons n'importe quel enregistrement unique sans utiliser de boucle. </p>
P粉156532706P粉156532706462 Il y a quelques jours428

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

  • P粉930448030

    P粉9304480302023-08-22 21:34:58

    Utilisez mysqli_fetch_row(). Essayez ceci :

    $query = "SELECT ssfullname, ssemail FROM userss WHERE user_id = ".$user_id;
    $result = mysqli_query($conn, $query);
    $row   = mysqli_fetch_row($result);
    
    $ssfullname = $row['ssfullname'];
    $ssemail    = $row['ssemail'];

    répondre
    0
  • P粉265724930

    P粉2657249302023-08-22 12:11:29

    Pas besoin d'utiliser une boucle lorsqu'un seul résultat est nécessaire. Obtenez la ligne directement.

    • Si vous avez besoin d'obtenir la ligne entière de données sous forme de tableau associatif :

      $row = $result->fetch_assoc();
    • Si vous n'avez besoin que d'une seule valeur, à partir de PHP 8.2 :

      $value = $result->fetch_column();
    • Ou pour les anciennes versions :

      $value = $result->fetch_row()[0] ?? false;

    Voici des exemples complets de différents cas d'utilisation

    Variables pour requête

    Lors de l'utilisation de variables dans des requêtes, des instructions préparées doivent être utilisées. Par exemple, disons que nous avons une variable $id :

    PHP >= 8,2

    // 获取单行数据
    $sql = "SELECT fullname, email FROM users WHERE id=?";
    $row = $conn->execute_query($query, [$id])->fetch_assoc();
    
    // 如果只需要一个值
    $sql = "SELECT count(*) FROM users WHERE id=?";
    $count = $conn->execute_query($query, [$id])->fetch_column();

    Ancienne version de PHP :

    // 获取单行数据
    $query = "SELECT fullname, email FROM users WHERE id=?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("s", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    
    // 如果只需要一个值
    $query = "SELECT count(*) FROM userss WHERE id=?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("s", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    $count = $result->fetch_row()[0] ?? false;

    Une explication détaillée du processus ci-dessus peut être trouvée dans mon article. La raison pour laquelle cette démarche doit être suivie est expliquée dans cette fameuse question

    Aucune variable dans la requête

    Dans votre cas il n'y a aucune variable à utiliser dans la requête, vous pouvez utiliser la méthode query() :

    $query = "SELECT fullname, email FROM users ORDER BY ssid";
    $result = $conn->query($query);
    // 如果需要一个数组
    $row = $result->fetch_assoc();
    // 或者如果只需要一个值
    $value = $result->fetch_row()[0] ?? false;

    répondre
    0
  • Annulerrépondre