-2
votes

Pouvez-vous s'il vous plaît vérifier mon code? Je souhaite afficher des données de la base de données dans une liste à l'aide de la boucle

Capture d'écran ici J'ai 2 entrées de données dans ma base de données "travail" et je Voulez-vous les afficher comme une liste à l'aide de la boucle.

Je ne peux voir que la première entrée d'une liste et la boucle ne fonctionne que sur la première entrée. xxx


6 commentaires

c'est une façon inhabituelle de itération à travers un jeu d'enregistrements - je soupçonne que c'est le problème


Où obtenez-vous rangée variable?


J'ai édité mon code.


Vérifiez si la déclaration du compte comptent et utilisez également pendant la boucle.


Chaque appel à mysqli_fetch_array récupère une nouvelle ligne. Donc, vous devez appeler mysqli_fetch_array sur chaque itération de la boucle (par exemple, tandis que ($ rang = mysqli_fetch_array ($ re)) . mysqli_fetch_array Ne retourne pas un tableau associatif. Vous voulez mysqli_fetch_assoc pour cela.


@MeralD, j'ai ajouté une nouvelle réponse au duplicata que j'ai fermé avec vous de vous montrer que vous n'avez pas besoin d'appeler tout Fetch () Ing Fonctions pour itérer votre résultat. ensemble. Je vous recommande de passer à la syntaxe orientée objet - je trouve une meilleure habitude car sa syntaxe moins redondante est plus brève et plus facile à lire.


4 Réponses :


-1
votes

Vous lisez à partir de la DB dans $ Art , mais affichant des données de $ rang1 : xxx

essayez de boucler les résultats de la requête .


3 commentaires

Ce n'est qu'un des nombreux problèmes dans le code de l'OP. Cela ne répond pas à la question.


La réponse ne suppose pas que je posterai le code, n'est-ce pas censé être un indice dans la bonne direction?


Si vous n'avez aucune intention de résoudre toute la question, convertissez votre message en wiki pour inviter d'autres personnes à compléter votre réponse.



-1
votes

Quelle valeur la variable $ comptez Hold ?. Il doit contenir le nombre de lignes. Vous pouvez utiliser la fonction mysqli_num_rows pour récupérer le nombre de lignes. Par exemple: $ comte = mysqli_num_rows ($ re) .

Aussi $ rang1 = mysqli_fetch_array ($ RET); doit être supprimé. Il récupère une rangée de la base de données sans rien faire avec elle.

à l'intérieur de la boucle pour la boucle, le code $ arr = mysqli_fetch_array ($ re); doit être remplacé par $ rang1 = mysqli_fetch_array ($ re);


2 commentaires

Je l'ai déjà fait dans mon code mais je ne fonctionne toujours pas correctement.


Même si $ comptage est défini correctement, il ne peut pas être utilisé pour boucler les résultats. Ce n'est pas la façon dont vous avez itérus sur les résultats sur mysqli_fetch_array .



2
votes

appeler mysqli_fetch_array code> Initialement, comme vous l'avez fait à nouveau dans la boucle consommera le jeu d'enregistrements (2 enregistrements) sur la première itération de la boucle - appelez-le pour chaque ligne

<div class="mb-5">

<?php
    while( $rs=mysqli_fetch_array( $ret, MYSQLI_ASSOC ) ){
        $jobTypeName = $rs['jobTypeName'];
        $jobTitle = $rs['jobTitle'];
        $locationName = $rs['locationName'];
        $salary = $rs['salary'];
?>

  <div class="row align-items-start job-item border-bottom pb-3 mb-3 pt-3">
    <div class="col-md-4">
      <span class="badge badge-primary px-2 py-1 mb-3"> <?php echo $jobTypeName ?> </span>
      <h2>
        <?php echo $jobTitle ?>
      </h2>
    </div>
    <div class="col-md-3 text-left">
      <p class="meta"> <strong>Location</strong></p>
      <h3><?php echo $locationName ?></h3>
    </div>
    <div class="col-md-3 text-md-right">
      <p class="meta"> <strong>Salary</strong></p>
      <strong class="text-black"> <?php echo $salary ?> </strong>
    </div>
  </div>    

<?php
    }//close while loop
?>


3 commentaires

Bonjour, j'ai essayé d'utiliser en boucle dans mon code mais cela ne fonctionne pas aussi.


MySQLI_FETCH_ARRAY ne renvoie pas un tableau associatif par défaut. Chaque colonne est un indice numérique.


Bon appel @culy - modifié ci-dessus pour inclure la constante requise



-1
votes
<?php  

  $select="SELECT * FROM job j JOIN jobtype jt ON j.jobtypeID = jt.jobtypeID JOIN location l
  ON j.locationID = l.locationID";

  $ret=mysqli_query($connection,$select);
  $count=mysqli_num_rows($ret);
  // $row1=mysqli_fetch_array($ret);

 ?>
    <div class="mb-5">
<?php

  $subselect="SELECT * FROM job j JOIN jobtype jt ON j.jobtypeID = jt.jobtypeID JOIN location l
  ON j.locationID = l.locationID";
$subret=mysqli_query($connection,$subselect);
$subcount=mysqli_num_rows($subret);

for($j=0;$j<$subcount;$j++)
{      
  $row1=mysqli_fetch_array($subret);
$jobTypeName =  $row1['jobTypeName'];
$jobTitle =   $row1['jobTitle'];
$locationName =   $row1['locationName'];
$salary = $row1['salary'];

?>

          <div class="row align-items-start job-item border-bottom pb-3 mb-3 pt-3">
            <div class="col-md-4">
              <span class="badge badge-primary px-2 py-1 mb-3"> <?php echo $jobTypeName ?> </span>
              <h2><?php echo $jobTitle ?></h2>

            </div>
            <div class="col-md-3 text-left">
                <p class="meta"> <strong>Location</strong></p>
              <h3> <?php echo $locationName ?> </h3>

            </div>
            <div class="col-md-3 text-md-right">
               <p class="meta"> <strong>Salary</strong></p>
              <strong class="text-black"> <?php echo $salary ?> </strong>
            </div>

           </div>

        <?php
      }
      ?>

 </div>
        </div>

1 commentaires

J'ai résolu ma question de cette manière et cela fonctionne comme comme la façon dont je voulais que le résultat soit. Merci à tous de m'aider avec différentes solutions.