Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107

    Warning: mysqli::query(): Couldn't fetch mysql

    Ciao a tutti il mio problema è quello indicato dal titolo. Non so dove sbaglio in quanto salvo all'interno del Session la connessione al DB, in questo modo:
    (Pagina1)
    Codice PHP:
    session_start();
    define("DB_SERVER""localhost");define("DB_USER""root");define("DB_PASSWORD""");define("DB_DATABASE""prova");
    $conn mysqli_connect(DB_SERVER DB_USERDB_PASSWORDDB_DATABASE);$_SESSION["con"]=$conn
    Dopodichè la riutilizzo per eseguire una query su un'altra pagina, così
    (Pagina2)
    Codice PHP:
    session_start();
    $conn=$_SESSION["con"];$sql 'SELECT nomep, prezzo, descizione, codice FROM prodotti     join prodotti_venduti on prodotti.codice=prodotti_venduti.codice_pv    join utente on utente.partita_iva=prodotti_venduti.partita_iva_pv        where partita_iva="$paiva"';                
    $result $conn->query($sql);$row $result->fetch_array(MYSQLI_NUM);while($row $result->fetch_array(MYSQLI_NUM)){print_r($row);} 
    Non capisco come la query che svolgo (non ho messo il codice) nella pagina 1 mi va senza problema, mentre quella che svolgo all'interno di pagina2 non va; è come se non riuscisse ad eseguirmela perchè non si collega a $conn.

    Spero di essermi spiegato bene, grazie in anticipo dell'aiuto.
    F

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Non ha senso mettere il link alla connessione in sessione. A termine del istanza php la connessione viene chiusa, quindi quando vai a riusarla la connessione non c'è più.
    Connettiti nuovamente al database

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    Quindi mi stai dicendo che in ogni pagina php devo inserire il codice:
    <PHP> session_start();
    define("DB_SERVER", "localhost");define("DB_USER", "root");define("DB_PASSWORD", "");define("DB_DATABASE", "prova");
    $conn = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);$_SESSION["con"]=$conn; </PHP>
    ?

    Io pensavo che la connessione si chiudesso solo con il comando: $mysqli->close();

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    Guarda go fatto come mi hai detto tu ma mi da sempre lo stesso errore, ho cambiato il codice nel seguente:
    <PHP>


    session_start();

    define("DB_SERVER", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "prova");


    // Create connection
    $conn = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);


    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    $email=$_SESSION["nomeu"];
    $paiva=$_SESSION["partita_iva"];
    $conn=$_SESSION["con"];
    echo '<h1>Questa è la tua lista di prodotti '.$email.'<br> aggiungine modifica o elimina uno</h1>';

    $sql = 'SELECT nomep, prezzo, descizione, codice FROM prodotti
    join prodotti_venduti on prodotti.codice=prodotti_venduti.codice_pv
    join utente on utente.partita_iva=prodotti_venduti.partita_iva_pv
    where partita_iva="$paiva"';


    if ($result = mysqli_query($conn, $sql)) {


    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
    printf ("%s (%s)\n", $row["nomep"], $row["prezzo"]);
    }


    /* free result set */
    mysqli_free_result($result);
    }



    </PHP>

    cosa posso fare?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Riassegni di nuovo il valore della variabile di sessione a $conn.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    Ah ok, hai ragione. Anche se l'ho tolta e non mi appare nulla, è come se non funzionasse il comando per "fecthare" i risultati dell query

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Per debuggare, metto dei print o echo. In questo modo riesco a capire da dove viene il problema.

    Codice PHP:
    if ($result mysqli_query($conn$sql)) {

    print 
    "prima while<br/>";
            
    /* fetch associative array */
                
    while ($row mysqli_fetch_assoc($result)) {
                    
    printf ("%s (%s)\n"$row["nomep"], $row["prezzo"]);
            }
    print 
    "dopo while<br/>";

         
    /* free result set */
            
    mysqli_free_result($result);
            }
    print 
    "fine"
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    Utilizzando il codice da te passatomi, la pagina mi stampa uno dietro l'altro tutti i tre print E BASTA. Ho letto che non è possibili stampare $result ma che posso farlo solo $row che però in questo caso risulta vuoto.

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Cosa ne deduci ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    ho testato la query direttamente sul db e funziona, cioè mi da risultato. Forse ho sbagliato all'inizio, durante la creazione della connessione?

Tag per questa discussione

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.