Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Query che stampa solo il primo valore?

    ciao a tutti
    ho la seguente query che mi dovrebbe estrarre tutti gli id della tabella model. La cosa sorprendente è che quando vado a visualizzare i risultati in $row mi stampa solo il primo record di tutti quelli selezionati. Dov'è che sbaglio?
    Codice PHP:
    if(isset($_GET['sel']) && !empty($_GET['sel'])) 
     { 
       
    $exp explode(",",$_GET['sel']); 
       foreach (
    $exp as $key=>$value)
       {
        
    //echo "valore : ".$value."
    ";  QUI MI STAMPA CORRETTAMENTE TUTTI I VALORI DI $value
        
    $query = "SELECT FROM model " .
                 "
    WHERE model_id '$value' ";
        
    $result = mysql_query($query)
             or die("
    Query fallita !");
       }
     }
    while (
    $row = mysql_fetch_array($result))
     {
      echo "" . 
    $row['model_nome'] . ""; //QUI MI STAMPA SOLO IL PRIMO RECORD. PERCHE'?
      echo "
    ";
     } 

  2. #2
    tu fai la query nel foreach ma stampi i risultati della query fuori, è dunque normale che stampi solo un ID.

    O che metti il mysql_fetch subito dopo la query all'interno del foreach (pessima soluzione perché fai molte query per niente), oppure puoi costruire una query migliore (magari con "model_id IN ()" e la lista degli ID che ti interessano.

    Prova con qualcosa del genere:
    Codice PHP:
    if(isset($_GET['sel']) && !empty($_GET['sel'])){
        
    $result mysql_query("SELECT * FROM model WHERE model_id IN ({$_GET['sel']})");
        if(
    mysql_errno() == 0){
            while(
    $row mysql_fetch_assoc($result)){
                print 
    $row['model_nome'].', ';
            }
        } else {
            print 
    "MySQL error: ".mysql_error();
        }


  3. #3
    if(isset($_GET['sel']) && !empty($_GET['sel']))
    {
    $exp = explode(",",$_GET['sel']);
    foreach ($exp as $key=>$value)
    {
    //echo "valore : ".$value."
    "; QUI MI STAMPA CORRETTAMENTE TUTTI I VALORI DI $value
    $query = "SELECT * FROM model " .
    "WHERE model_id = '$value' ";
    $result = mysql_query($query)
    or die("Query fallita !");
    while ($row = mysql_fetch_array($result))
    {
    echo "" . $row['model_nome'] . ""; //QUI MI STAMPA SOLO IL PRIMO RECORD. PERCHE'?
    echo ", ";
    }
    }
    }

    anche se fare delle query dentro a un ciclo non è il massimo, magari prova a vedere se hai delle alternative, ciao

  4. #4
    grazie per aver risposto.
    dicevi che per migliorare la query potrei fare ... "model_id IN ()" e la lista degli ID che ti interessano..., ma non ho capito cosa dovrei fare esattamente. Se non ti è di troppo disturbo potresti farmi un fac-simile della prima riga delle query per come la intendi tu.
    Ti ringrazio in anticipo.

  5. #5
    hoops, scusa no avevo visto che l'avevi già fatto.
    Grazie ancora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.