Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128

    Problema con mysql_query()

    Ciao a tutti,

    sto seguendo questa guida: http://php.html.it/guide/leggi/77/guida-phpmysql-pratica/ e sono arrivato alla lezione 12.
    Praticamente ho creato una serie di pagine per la consultazione, modifica e inserimento di notizie con tanto di creazione del DB, interrogazione etc.
    Ora mi sto provando il funzionamento di tutte le pagine perchè alcune cose non le ho fatte paro-paro alla guida ma ho fatto qualche modifica rivedendo l'organizzazione dello script e facendo qualche piccola aggiunta, tanto per provare.
    Ora sono nella fase di verifica del funzionamento di tutto il sistema ma già alla prima pagina (index.php) ho incontrato diversi problemi.
    Alcuni li ho già risolti da solo, ma questo non riesco perchè non capisco il comportamento anomalo di mysql_query().

    Ecco lo script (come vedrete sono pedante con i commenti e lo stile di scrittura ma lo faccio apposta per stamparmi bene in mente i concetti):


    <?php
    /* Inclusioni */
    include("assets/includes/config.php");
    include("assets/includes/top_foot.php");

    /* Head html */
    top();

    // Connesione al DB
    include("assets/includes/db_connection.php");

    // Visualizzazione dei primi 5 articoli
    // creazione query
    $query = "SELECT id, data, titolo FROM news ORDER BY data DESC LIMIT 0,5";
    // esecuzione query
    $result = mysql_query($query, $db);
    ?>
    <ul>
    <?php
    // selezione nel DB dei record di $result e visualizzazione
    while ($row = mysql_fetch_array($result))
    {
    $data = date("j/n/y", $row[data]);
    echo("[*]<a href=\"view.php?id=$row[id]\">$row[titolo]
    <span>$data</span></a>");
    }
    ?>
    [/list]
    <?php
    /* Footer html */
    foot();
    ?>


    Il problema si verifica alla riga "$result = mysql_query($query, $db);".
    Tra le prove che ho fatto per cercare di capire il problema ho provato a stampare il tipo di dato contenuto in $result con "echo(gettype($result));" e infatti, invece che restituirmi "resource" (come mi pare di aver capito che avrebbe dovuto fare leggendo il manuale di PHP) mi restituisce "boolean".

    Infatti eseguendo lo script PHP restituisce il seguente errore (la grassettatura è mia):
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Web\Sites\TEST_notizie\index.php on line 21

    Da quello che ho capito io consultando il manuale di PHP però la funzione "mysql_query();" dovrebbe restituire un dato di tipo "resource" e non "boolean"...

    La mysql_query() nel mio script, come potete vedere, ha come parametro della query $query che è una stringa (visibile nello script riportato), e come parametro della connessione $db. $db viene definito nell'inclusione "db_connection.php".

    Per quale motivo quindi ricevo il suddetto errore?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Innazitutto verifica quale è l'errore esatto della query.
    Per farlo inserisci l'indicatore di errore
    Codice PHP:
    $result mysql_query($query$db) or die ("query errata ".mysql_error()); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    Grazie clasku, ho risolto.

    Con la funzione che mi hai suggerito restituiva l'errore "No database selected".
    Quindi il problema era il parametro $db. Su $db però avevo già fatto un controllo con "echo($db);" e mi restituiva "resource" quindi non capivo il problema.
    Allora sono andato a ricontrollarmi il file "config.php" e mi sono ricordato che il parametro $db_name (necessario per il funzionamento dello script in db_connection.php) non è il nome del database, ma il nome della tabella contenuta nel database "notizie".
    Avevo fatto questo modifica perchè prima lo script di db_connection.php mi restituiva una stringa che mi faceva credere che ci fosse un errore quando invece non c'era perchè il tutto era generato da un errore logico nello script che avevo modificato.

    Ora quindi sembra tutto ok. Grazie mille!

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.