Visualizzazione risultati 1 fino 7 di 7

Discussione: [MySQL + PHP] Argomento non supportato :|

  1. #1
    Guest

    Predefinito [MySQL + PHP] Argomento non supportato :|

    Più continuo a scrivere codice, più mi rendo conto che Murphy aveva ragione...
    Ho creato un piccolo script che, basandosi sui dati trovati nel database, stampi a schermo solo gli ultimi due risultati (quelli che hanno l'id più alto).
    Tuttavia continuo a ricevere un errore:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in \index.php on line 17
    Ovviamente anche i conseguenti
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in \index.php on line 25
    e
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in \index.php on line 26

    Qui di seguito posto il (confuso) codice che ho scritto

    Codice:
    $total_news = mysql_query("SELECT count(*) AS tot_news FROM "TABELLA NEWS"", $mysql_connect);
    $number_news = mysql_fetch_array($total_news);
    $max_news = $number_news["tot_news"] - 2;
    $mysql_query_news = mysql_query("SELECT * FROM "TABELLA NEWS" ORDER BY id ASC LIMIT $max_news,$step", $mysql_connect);
    while ($riga = mysql_fetch_array($mysql_query_news, MYSQL_ASSOC)) {
        $id = $riga["id"];
        $titolo = $riga["titolo"];
        $autore = $riga["autore"];
        $ante = $riga["ante"];
        $data = $riga["data"];
        echo "<tr><td class=\"id\">\n<table class=\"gen\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">\n<tr><td class=\"gen_title\"><a href=\"$root/view.php?id=$id&t=n\" title=\"$titolo\">$titolo</a></td><td class=\"gen_author\">Scritto da: $autore</td></tr>\n<tr><td class=\"gen_ante\" colspan=\"2\">$ante</td></tr>\n<tr><td class=\"gen_date\">Scritto il: $data</td></tr></table></td></tr>\n";
    }
    mysql_free_result($mysql_query_news);
    mysql_free_result($number_news);
    $mysql_connect è impostata un po' più su, e non l'ho scritta...
    Quale potrebbe essere l'errore? Possibile che si tratti della query "count(*)"?
    mysql_num_rows non credo vada bene, perché effettua un controllo su una query già effettuata, mentre io devo fare un controllo precedente per poter visualizzare (ripeto) gli ultimi due risultati salvati all'interno della tabella...
    Qualche santo che mi aiuta? :D
    Ciao!

  2. #2
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    l'errore non potrebbe essere nel fatto che metti il nome della tabella tra ""? non ho mai visto fare così...


    -- Aut Roma Aut Nihil!

  3. #3
    Guest

    Predefinito

    Ah, avevo dimenticato di precisare quello :D
    Volutamente, non ho scritto il nome della tabella per una questione di sicurezza... ho preferito scrivere tra virgolette un'intera frase. Nella pagina vera non ho messo la tabella tra virgolette

  4. #4
    Guest

    Predefinito

    l'ultimo mysql_free_result lo devi fare sulla risorsa sql $total_news, non su $number_news che è un semplice array

    Codice PHP:
    [..]
    mysql_free_result($mysql_query_news);
    mysql_free_result($total_news);
    mavericck

  5. #5
    Guest

    Predefinito

    Ok, questa parte è risolta, grazie
    Ora resta ancora il problema del fetch array... cerco di fetchare la query fatta verso il database, però mi dà quel primo messaggio... e non riesco a capire dove sbaglio... non capisco perché, spesso, non riesco a fetchare fuori da un ciclo while...
    Sarò scemo io, sarà scemo l'interprete del PHP... ma certe volte non ci capisco più niente

  6. #6
    Guest

    Predefinito

    hai controllato se la prima query (quella che genera $total_news) va a buon fine?
    Cioè subito dopo verifica che $total_news non sia false

    mavericck

  7. #7
    Guest

    Predefinito

    Ho trovato l'errore...
    Il controllo di $max_news non prevede che, nella tabella, siano presenti meno di 3 records... vabbé, ora dò una migliorata al codice (giuro che non ci avevo pensato)... che vergogna!
    Qui si può chiudere :D
    Grazie dell'aiuto!
    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •