2010-12-07 11 views
3

J'ai ce simple code PHP:MySQL retourne une seule ligne

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); 
    $query2 = mysql_fetch_assoc($quer); 
    print_r($query2); 

Il revient seulement ceci:

Array ([title] => Kill Bill Vol 1. [url_title] => kill_bill_vol_1) 

Je 3500+ lignes de la table, et l'exécution du SQL dans les travaux PhpMyAdmin à la perfection.

Répondre

7
$query = mysql_query("SELECT `title`, 
          `url_title` 
         FROM `fastsearch` 
         WHERE `tags` 
          LIKE '%$q%' 
         LIMIT 5"); 

while ($row = mysql_fetch_assoc($query)) { 
    print_r($row); 
} 
  • Vous avez mal orthographié $query dans votre exemple
  • mysql_fetch_assoc() renverra une ligne chaque fois qu'elle est appelée, et quand FALSE de lignes. Utilisez cela à votre avantage, en lui attribuant une variable dans la condition. Dans la boucle while(), $row sera la ligne en cours.
+0

Je vais accepter votre réponse en 3 minutes, quand il me permet. J'ai utilisé foreach, mais je ne sais pas comment faire cela avec: – wintercounter

+0

foreach (mysql_fetch_assoc ($ quer) comme $ row => $ item) { $ arrResults [$ row] = $ item; } J'ai besoin de cela, car j'utilise des données JSON, avec la fonction json_encode. – wintercounter

+0

@wintercounter La valeur retournée n'est pas un tableau comme vous le voulez, donc je ne pense pas que cela fonctionnera (elle va simplement faire une boucle sur les membres du premier tableau de la ligne retournée). – alex

1

la méthode fetch_assoc() retourne une ligne, vous devez faire une boucle avec elle

2

droit, vous n'êtes pas de lire les résultats correctement.

mysql_fetch_assoc() renvoie uniquement une ligne à la fois. Utilisez une boucle pour lire toutes les lignes.

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); 

$resultSet = array(); 
while ($cRecord = mysql_fetch_assoc($query)) { 
    $resultSet[] = $cRecord; 
} 
2

Comme documentation http://php.net/manual/en/function.mysql-fetch-assoc.php états:

mysql_fetch_assoc — Fetch a result row as an associative array 

Donc, si vous voulez itérer résultat que vous devez utiliser une boucle par exemple:

while ($row = mysql_fetch_assoc($result)) { 
    echo $row["title"]; 
    echo $row["url_title"];  
} 
0

mysqli_fetch_assoc() est des fonctions qui est la lecture de plusieurs enregistre et affiche via print_r().

$query = "SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"; 
$result = mysqli_query($conn,$query); 
while(null ! == ($query = mysqli_fetch_assoc($result))){ 
    print_r($query); 
} 
+2

Veuillez donner une explication de cette réponse –

Questions connexes