comment faire pour récupérer toutes les ligne de résultat en php mysql?

Dans ma table j'ai 2 dossiers avec companyid = 1 , mais lorsque j'exécute le code php ci-dessous pour companyid = 1 il ne retourne que le premier !
Comment puis-je récupérer tous les enregistrements?

Le fichier php:

if (isset($_GET["companyid"])) {
$companyid = $_GET['companyid'];

//get a product from products table
$result = mysql_query("SELECT * FROM `products`         
                        WHERE companyid = $companyid;");

if (!empty($result)) {      

    if (mysql_num_rows($result) > 0) {

   while($row = mysql_fetch_assoc($result)){
      $product = array();
      $product["pid"] = $row["pid"];
      $product["productname"] = $row["productname"];        
    }

   $response["product"] = array();

       array_push($response["product"], $product);

        //success
       $response["success"] = 1;

   echo json_encode($response);

    } else {
        //no product found
        $response["success"] = 0;
        $response["message"] = "No product found";

        //echo no product JSON
        echo json_encode($response);
    }
} else {
    //no product found
    $response["success"] = 0;
    $response["message"] = "No product found";

    //echo no users JSON
    echo json_encode($response);
}
} else {
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

//echoing JSON response
echo json_encode($response);
}

À l'aide de mysql_fetch_array se passe la même chose.
il retourne {"product":[{"pid":"12371","productname":"test"}],"success":1}
lorsque j'exécute une requête sans paramètres select * from table à l'aide de mysql_fetch_array il renvoie toutes les lignes ..

Vous avez besoin d'une boucle sur les résultats et la lecture de chaque ligne. Changer votre if (mysql_num_rows...) appel à une boucle for.
ne pas le faire $result = mysql_fetch_assoc($result); vous détruisez votre $result de données lorsque vous faites cela. renommer $row ou quelque chose
double possible de Extraire toutes les lignes en fonction de la requête dans un tableau
S'il vous plaît arrêter d'écrire du nouveau code avec les anciennes mysql_* fonctions. Il n'est plus maintenu et la communauté a commencé la dépréciation du processus . Au lieu de cela, vous devriez en apprendre davantage sur les instructions préparées soit PDO ou MySQLi. Si vous ne pouvez pas décider, cet article l'aider à choisir. Si vous tenez à le savoir, voici un très bon AOP-tutoriel.
Aussi, si vous êtes en utilisant PDO, vous pouvez simplement appeler fetchAll et être fait avec elle 🙂

OriginalL'auteur mprog | 2012-06-07