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

    [PHP - SQL] problema fetch_assoc()

    Salve a tutti ragazzi. Ho un problema (mavà) che mi tormenta.
    Posterò il codice, ma la mia è più una domanda di concetto, e poi spiegherò il perchè.

    $result = $mysqli->query("SELECT product.".$lang_prod." AS name, product.code AS code, product.".$price." AS price, product.color AS color, cart.quantity AS quantity FROM product LEFT JOIN cart ON product.code = cart.code WHERE cart.user = '".$_SESSION['username']."' ORDER BY cart.code ASC", MYSQLI_USE_RESULT);

    while($row = $result->fetch_assoc())
    {

    {
    $array_parole = explode(" ", $row['color']);
    $numero_parole = count($array_parole);

    printf("<tr><td bgcolor=\"#FFFFFF\">".$row['code']."</td>
    <td bgcolor=\"#FFFFFF\">".$row['name']."</a></td>


    <td bgcolor=\"#FFFFFF\" align=\"center\">
    <select name=\"color\">");

    for ($cont = 0; $cont < $numero_parole; $cont++)
    {
    $result2 = $mysqli->query("SELECT * FROM colors WHERE id ='".$array_parole[$cont]."'");
    while($row2 = $result2->fetch_assoc())
    {
    printf("<option value=\"".$row2['name']."\">".$row2['name']."</option>");
    }
    }
    Senza badare troppo al codice, il mio problema è che mi dà errore nel secondo fetch_assoc.
    In sostanza c'è una tabella che preleva dei prodotti, i quali hanno un campo nel db con i colori che possono avere. Li ho messi tramite il loro ID in un'altra tabella, così nel campo posso avere ad esempio "3 9 10". Da qui l'idea dell'explode.
    Così ho $numero_parole che mi dice QUANTI colori ha ogni prodotto. Con il for e la successiva query vorrei ripescarne il nome, il colore da visualizzare ecc...

    La seconda query, messa in un file a parte, funziona bene! Mentre nidificata nella prima no! Da qui il dubbio che non possano convivere in pace.

    Avreste qualche consiglio, non proprio tecnico, ma sopratutto concettuale?
    Grazie a tutti!!!

  2. #2

    Re: [PHP - SQL] problema fetch_assoc()

    Originariamente inviato da fedonair
    mi dà errore nel secondo fetch_assoc.
    Che errore?

  3. #3
    Fatal error: Call to a member function fetch_assoc() on a non-object in ...

    Tra l'altro l'errore nemmeno si legge nella pagina, che rimane bianca dal punto in cui c'è l'inghippo. Per leggerlo devo andare nel sorgente della pagina.. strano davvero.

  4. #4
    Inserisci questo codice immediatament dopo a $result2 = $mysqli->query(...) e postane il risultato:

    echo($mysqli->error);

  5. #5
    sempre tramite codice sorgente leggo
    <select name="color">Commands out of sync; you can't run this command now
    Fatal error: Call to a member function fetch_assoc() on a non-object in etc etc...
    Quindi devo capire cosa vuol dire Commands out of sync...

  6. #6

  7. #7
    Originariamente inviato da filippo.toso
    Togli la flag MYSQLI_USE_RESULT.
    Funziona! Cavoli non so come ringraziarti!
    Leggevo nel manuale base che c'era una sovrapposizione di dati, però da lì a capire come risolverlo c'è un abisso!
    Beh grazie tante, 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 © 2024 vBulletin Solutions, Inc. All rights reserved.