Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Errore con mysql_num_rows

    Ecco l'errore che riscontro:
    codice:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programmi\xampp\htdocs\search\search.php on line 15
    Questo è il file:
    codice:
    <?php
    require("config.php");
    
    $author = htmlspecialchars($_GET['author']);
    $title = htmlspecialchars($_GET['title']);
    
    if ($author == "") {
    echo "Compila il campo Autore";
    }
    if ($title == "") {
    echo "Compila il campo Titolo";
    }
    $query = mysql_query("SELECT * FROM voices WHERE author LIKE '%author%'");
    $result = mysql_fetch_array($query);
    if (mysql_num_rows($result) == 0) {
    echo "Nessuna corrispondenza trovata";
    exit();
    }
    
    while ($result)
    {
        echo "[*]<a href=\"showvoice.php?v=$result[id]\">";
        echo "$result[title]</a>";
        echo " di $result[author]";
    $result = mysql_fetch_array(query);
        }
    ?>
    e questa è la riga 15:
    codice:
    if (mysql_num_rows($result) == 0) {
    Qual'è l'errore? Insultate pure, so di aver fatto un errore scemo

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Prova con ... e vedi che dice...
    $query = mysql_query("SELECT * FROM voices WHERE author LIKE '%author%'") or die( mysql_error() )

  3. #3
    Stesso errore di prima.

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    hai provato ad eseguire la query a db? e' corretta?

  5. #5
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/mysql_num_rows

    Con particolare attenzione al tipo di parametro che si aspetta di ricevere la funzione mysql_num_rows().

  6. #6
    Ecco quello che dice PhpMyAdmin:

    MySQL ha restituito un insieme vuoto (i.e. zero righe). ( La query ha impiegato 0.0061 sec )

    Poi ho provato ad eseguire una query del genere:

    codice:
    SELECT * FROM voices WHERE author LIKE  '%b%'
    dato che ho creato una voce che ha per autore bbbbbbbb e mi ha dato tutte le informazioni relative a quel record...

  7. #7
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    A parte il giusto consiglio di Filippo.. LIKE '%author%' cerca nel campo author qualsiasi record contenente author(inizio, nel mezzo o fine della parola)... probabilmente non hai nulla per il tipo di ricerca.

  8. #8
    Forse non ho capito bene il funzioname di LIKE...

    Io ho una variabile $author che preleva il contenuto da un form in modalità GET. Io vorrei cercare un record che abbia nel campo author le lettere inserite nel form (rappresentate dalla variabile $author).

    Ho sbagliato io a scrivere il codice?

  9. #9
    Ho corretto l'errore che ho capito adesso...

    a mysql_num_rows dovevo passare direttamente $query e non $result.

    Però rimane un altro piccolo problema, non trova nulla mentre eseguendo la query nel db il record lo trova.

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    allora dovresti fare una cosa del tipo:

    $query = mysql_query("SELECT * FROM voices WHERE author LIKE '%".$_GET["author"]."%' ") or die( mysql_error() )

    ... se il name del form si chiama author (o cmq metti il nome corrispondente)

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.