Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57

    problema while con menu dinamico - Help!

    Premessa : sono all'inizio con php.

    Scusate, sto facendo un menu dinamico, e non capisco l'errore...

    Praticamente non prende più i dati del database dal while in poi.
    Forse perche viene ripetuto $row = mysql_fetch_array($result) ?



    <?
    include("inc.php");
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    $id=$_GET['id'];
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id='$id'";
    $result = mysql_query($query, $db);
    $row = mysql_fetch_array($result);
    //print_r ($row);
    //$data = date("j/n/y", $row[data]);
    meta();
    ?>
    <script type="text/javascript">
    <!--
    function MM_jumpMenu(targ,selObj,restore){ //v3.0
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
    }
    //-->
    </script>
    <body>
    <div id="content">
    <? head(); ?>
    <? menu(); ?>
    <div id="main">
    <div id="scheda">
    <h1><? echo $row[macchina] . " - " . "<span class=\"tipo\">$row[tipo]</span>" ?></h1>
    <? echo $row[intro] ?>
    <h1>CARATTERISTICHE TECNICHE E COSTRUTTIVE</h1>
    <? echo $row[caratteristiche] ?>
    <? if ($row[optionals] != "") {
    echo "<h1>OPTIONALS</h1>";
    echo $row[optionals]; }?>
    </div>
    <div class="jump_machine">
    <form name="form" id="form">
    <select name="jumpMenu" id="jumpMenu" onChange="MM_jumpMenu('parent',this,0)">
    <option selected>Seleziona una macchina</option>

    <?
    while ($row = mysql_fetch_array($result)){
    echo "<option value=\"scheda.php?id=$row[id]\">" . $row[macchina] . "</option>";
    }
    ?>
    <?
    /*foreach ($result as $row){
    echo "<option value=\"scheda.php?id=$row[id]\">" . $row[id] . "</option>";
    }*/
    ?>

    </select>
    </form>
    </div>
    <div id="scheda_foto">
    <h1><? echo $row[macchina] ?></h1>
    <h2><? echo $row[tipo] ?></h2>
    [img]<? echo $row[img] ?>[/img]
    <div id="options">[img]../img/macchine/foto.jpg[/img][img]../img/macchine/video.jpg[/img] [img]../img/macchine/pdf.jpg[/img] </div>
    <table width="330" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>Produzione oraria</td>
    <td>150/700 Kg/h circa secondo formato</td>
    </tr>
    <tr>
    <td>Voltaggio</td>
    <td>380 V trifase 50 Hz.</td>
    </tr>
    <tr>
    <td>Potenza installata</td>
    <td>10 Kw</td>
    </tr>
    </table>
    </div>
    </div>
    <? mysql_close($db);
    footer(); ?>
    </div>
    </body>
    </html>

  2. #2
    io vedo un errore: quando scrivi la riga estratta dalla query ($row) metti i nomi dei campi senza apici, cioè metti

    $row[macchina]

    invece di

    $row['macchina']

    e di certo questo non fa altro che prelevarti dati vuoti ed è pure strano che non ti dia errore..

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Ciao, il codice è lo stesso che ho usato per un altro lavoro, e funziona senza apici. Il problema è che qui per inserire alcuni dati ho dovuto ripetere :

    $row = mysql_fetch_array($result);

    Io penso che sia questo l'errore, infatti se tolgo il menu, lui va avanti e legge correttamente :

    <h1><? echo $row[macchina] ?></h1>
    <h2><? echo $row[tipo] ?></h2>

    che può essere?

    S.

  4. #4
    se pensi che sia quella, nella riga che chiama la query

    $result = mysql_query($query, $db);

    mettila così

    $result = mysql_query($query, $db) || die ("Errore nella query: ".mysql_error);

    per vedere se c'è lì un errore

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Ecco, mettendo il codice che hai postato mi restituisce :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\www\esterni\officinefacchini.it\it\scheda.php on line 13

    .


  6. #6
    sicuro che nella riga

    $query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id='$id'";

    il campo ID sia un campo stringa? se fosse nuemrico come si suppone semrpe per gli ID gli apici non devono esserci..

    $query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id=$id";

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Gli id sono numeri. Se faccio :

    $query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster";
    //$query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id='$id'";
    $result = mysql_query($query, $db);


    while ($row = mysql_fetch_array($result)){
    echo "<option value=\"scheda.php?id=$row[id]\">" . $row[macchina] . "</option>";
    }

    Mi popola il menu correttamente. Solo che non mi carica tutto il resto...

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    credo di aver risolto ripetendo la query. Probabilmente era quel WHERE id='$id' che gli dava fastidio.

    quindi prima ho fatto la queri per la scheda selezionata :

    $query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id='$id'";
    $result = mysql_query($query, $db);
    $row = mysql_fetch_array($result);

    e poi quella per il menu :

    $query2 = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster";
    $result2 = mysql_query($query2, $db);
    while ($row2 = mysql_fetch_array($result2)){
    echo "<option value=\"scheda.php?id=$row2[id]\">" . $row2[macchina] . "</option>";
    }


    Sicuramente sarà una schifezza da vedere per un veterano di php, ma per ora sembra funzionare

    S.

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.