Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 50
  1. #1

    mysql_fetch_array(): argomento non valido MySQL

    Sto cercando di realizzare un file per effettuare una ricerca con più condizioni ma mi imbatto sempre nello stesso errore.
    Preciso che ho PHP 5.2.5 e MYSQL 5.0.45

    questo è il file:
    <form action="prova2.php" method="post" name="form">
    Codice PHP:
            <?php
                    $query1 
    "SELECT * FROM viaggi group by cognome"
                    
    $res mysql_query($query1) or die(mysql_error());
                    echo 
    "<label>";
                    echo 
    "Cognome ";
                    echo 
    "<select name='cognome'>"
                    echo 
    "<option selected='selected'></option>";
                    while(
    $rowmysql_fetch_array($res)){
                    echo 
    "<option>".$row['cognome']."</option>"
                    }
                    echo 
    "</select>";
                    echo 
    "</label>";
                    
                    
    $query2 "SELECT * FROM viaggi group by nome"
                    
    $res mysql_query($query2) or die(mysql_error());
                    echo 
    "<label>";
                    echo 
    "Nome ";
                    echo 
    "<select name='nome'>"
                    echo 
    "<option selected='selected'></option>";
                    while(
    $rowmysql_fetch_array($res)){
                    echo 
    "<option>".$row['nome']."</option>"
                    }
                    echo 
    "</select>";
                    echo 
    "</label>";
                    
                    
    $query3 "SELECT * FROM viaggi group by citta"
                    
    $res mysql_query($query3) or die(mysql_error());
                    echo 
    "<label>";
                    echo 
    "Città ";
                    echo 
    "<select name='citta'>"
                    echo 
    "<option selected='selected'></option>";
                    while(
    $rowmysql_fetch_array($res)){
                    echo 
    "<option>".$row['citta']."</option>"
                    }
                    echo 
    "</select>";
                    echo 
    "</label>";
                     
    ?>
    <input type="submit" name="button2" id="button2" value="Cerca"></td>
    </form>
    Codice PHP:
    <?php
    $query 
    mysql_query("SELECT * FROM viaggi where ");

    if(isset(
    $_POST['cognome']) and $_POST['cognome'] != ''){
          
    $query .= "cognome = "'$_POST[cognome]'." and ";
        } 
    if(isset(
    $_POST['nome']) and $_POST['nome'] != ''){
          
    $query .= "nome = "'$_POST[nome]'." and ";
        } 
    if(isset(
    $_POST['citta']) and $_POST['citta'] != ''){
          
    $query .= "citta = "'$_POST[citta]'." and ";
        } 
                          while (
    $row=mysql_fetch_array($query)) {
              
    print 
    $row['cognome'];
    print 
    $row['nome'];
    print 
    $row['citta'];
    ?>

                   
    <?php  ?>
    questo è l'errore che mi da:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\siti\avserver\acquisti\consegna\prova2.php on line 57

    la linea 57 è la seguente:

    Codice PHP:
     while ($row=mysql_fetch_array($query)) { 

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ma scusa, tu nel secondo pezzo di codice fai così:
    $query = mysql_query("SELECT * FROM viaggi where ");

    e in query non hai niente perché hai eseguito una query con niente dopo il WHERE, tutti gli if a seguire sono fuffa perché la query è già stata eseguita.

  3. #3
    e come dovrei fare?
    grazie

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Codice PHP:
    <?php
    $query 
    "SELECT * FROM viaggi where ";

    if(isset(
    $_POST['cognome']) and $_POST['cognome'] != ''){
          
    $query .= "cognome = "'$_POST[cognome]'." and ";
        } 
    if(isset(
    $_POST['nome']) and $_POST['nome'] != ''){
          
    $query .= "nome = "'$_POST[nome]'." and ";
        } 
    if(isset(
    $_POST['citta']) and $_POST['citta'] != ''){
          
    $query .= "citta = "'$_POST[citta]'." and ";
        }
    $result mysql_query($query);
                          while (
    $row=mysql_fetch_array($result)) {
              
    print 
    $row['cognome'];
    print 
    $row['nome'];
    print 
    $row['citta'];
    ?>


    <?php  ?>
    Prova ma mi sa che ci vogliono anche altri controlli perché ti trovi con alla fine della query un AND seguito da niente.

  5. #5
    ti ringrazio ma mi da lo stesso errore.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Dipende dagli AND, alla fine della query ne hai sempre uno che non ha nulla dopo, devi mettere altri controlli per mettere gli AND solo se servono realmente.

  7. #7
    Ho provato a fare così ma è uguale

    Codice PHP:
    $query = "SELECT * FROM viaggi where ";

    if(isset($_POST['cognome']) and $_POST['cognome'] != ''){
          $query.= "cognome = ". '$_POST[cognome]';
        } 

    $result = mysql_query($query);
                          while ($row=mysql_fetch_array($result)) {
              
    print $row['cognome'];
    print $row['nome'];
    print $row['citta'];
    ?>


    <?php  ?>

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    La variabile $_POST['cognome'] è valorizzata?

    Metti un
    echo $query."
    ";

    prima della variabile $result e vedi cosa stampa

    EDIT: aaaargh! cos'è questo?
    '$_POST[cognome]'

    chiaro che non ti funziona ci sono 2 errori in quel pezzo di codice
    1) le variabili tra singoli apici non vengono elaborate, ci vogliono i doppi, o anche niente, ma non i singoli apici.

    2) dentro le quadre devono esserci gli apici perché lì ci si aspetta una stringa oppure una variabile.

  9. #9
    mi stampa questo:
    SELECT * FROM viaggi where

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Che appunto è una query non valida, ho editato il post sopra, leggilo.

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.