Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Aiuto query php

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    20

    Aiuto query php

    Non riesco a far funzionare questa query tramite select, praticamente dovrei accedere alla tabella con dentro i nomi dei clienti e visualizzarli in base alle zone, classificate in un altra tabella. La prima parte del codice (che funziona) prende dalla tabella le zone e le mette nel select dal quale posso selezionarle. Il problema è che quando clicco il bottone invia mi apre una pagina vuota. non riesco a tirare fuori la lista dei clienti nella zona selezionata. Qualcuno mi può dare una mano a capire cosa non funziona?

    Grazie in anticipo!


    Codice PHP:
    <?php


    $db_host 
    "localhost";
    $db_user "XXXXXXXXX";
    $db_password "";
    $db_name "my_XXXXXXXX";

    //connetto il database

    $db mysql_connect($db_host$db_user$db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name$db) or die ('Errore durante la selezione del db');

    $query1 "SELECT * FROM zone"$result mysql_query($query1);

    ?> 

    <form action='cerca.php?ricerca=ok' method='POST'>


      <select name="area">
      
      <option value="0">Seleziona</option> 

    <?php 

    while ($line mysql_fetch_array($resultMYSQL_ASSOC)) {

    ?>  

    <option value= "line" > <?php echo $line['zona'];?> </option>  

    <?php 

    ?> 
    </select> 
      <input type='submit' value='Invia'>
      </p>

    </form>

    </form>
    <?php


    // recuperiamo il valore ricerca inviato con get

    $ricerca $_GET['area'];

    // vediamo se è stato inviato, e quindi uguale a ok

    if ( $ricerca == 'ok' ) {

    // recuperiamo ora cerca inviato con post

    $cerca $_POST['Invia'];


    // ora possiamo effettuare la nostra ricerca sul db

    $query "SELECT * FROM clienti WHERE zona LIKE '%$cerca%'";


    $risultato mysql_query($query) or die (mysql_error());

    $risposta mysql_query($query) or die ("Utilizza termini più specifici!");

    $dentro_la_querymysql_fetch_assoc($risposta);

    if ( 
    $dentro_la_query == TRUE ) {

    while(
    $rowmysql_fetch_assoc($risultato)) {

    $azienda $row['azienda'];
    $attivita $row['attivita'];
    $indirizzo $row['indirizzo'];
    $id $row['id'];

    // stampiamo i nostri dati

    echo "Azienda: $azienda<br>";
    echo 
    "Arrività : $attivita<br>";
    echo 
    "Indirizzo : $indirizzo<br>";



    }

    } else {

    echo 
    "Nessun temine alla ricerca trovato";

    }


    }



    ?>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ci sono diverse cose ma possono essercene altre


    // recuperiamo il valore ricerca inviato con get

    $ricerca = $_GET['area'
    ]; => 'area' è definito nel form con metodo POST

    // vediamo se è stato inviato, e quindi uguale a ok

    if ( $ricerca == 'ok'
    ) { => $ricerca non è mai uguale a ok. Hai un ricerca=ok nell'url ma non usi $ricerca = $_GET['ricerca'];

    // recuperiamo ora cerca inviato con post

    $cerca = $_POST['Invia'
    ]; => non c'è nessun campo con name='Invia"
    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

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    In oltre impostando il value fisso <option value="line"> nella select <select name="area"> quest'ultima diventa inutile
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    20
    Ok (sono alle prime armi con php) dovrei aver fatto un po' di pulizia di schifezze che ci avevo messo dentro, grazie per i suggerimenti che mi avete dato.
    Il form del menu select come prima funziona, la query se la faccio senza ricerca in una pagina a parte funziona, messi insieme invece no.



    Codice PHP:
    $db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
    mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');

    $query1 = "SELECT * FROM zone"; $result = mysql_query($query1);

    ?> 

    <form name='area' method='POST' action='cerca.php'>


      <select>
      
      <option value="0">Seleziona</option> 

    <?php 

    while ($line mysql_fetch_array($resultMYSQL_ASSOC)) {

    ?>  

    <option> <?php echo $line['zona'];?> </option>  

    <?php 

    ?> 
    </select> 
      <input type='submit' name="submit" id="submit" value='Invia'>
      

    </form>


    <?php 

    $cerca 
    $_POST['area'];

    $query "SELECT * FROM clienti WHERE zona LIKE '_$cerca'"

    $risultato= @mysql_query($query);

    $numcampi = @mysql_num_fields($risultato);

    while(
    $rowmysql_fetch_assoc($risultato)) {

    echo 
    $row['azienda']."-".$row['attivita']."-".$row['indirizzo']  ;



    }


    ?>

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Devi rivederti HTML.

    Se metti <option> e basta, non invierai mai alcun dato, devi aggiungereci l'attributo value, è quello che prenderà PHP.

    <option value="il_valore_dell_opozione">........</option>

    e il valore deve cambiare ad ogni ciclo a seconda di ciò che hai preso dal db.

    Inoltre non dai un nome al tag <select>, PHP come fa a sapere cosa deve prendere? Tu cerchi di prendere $_POST['area'] dove "area" è il nome del form, a PHP non gli interessa il nome del form, gli interessa quello dei campi.

    Va qui: http://www.html.it/guide/guida-html/

    c'è la sezione dedicata ai form, impara come si usano.
    Ultima modifica di Alhazred; 09-11-2014 a 13:44

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.