ricerca dati nel DB mysql.

  • Creatore Discussione Creatore Discussione efisio
  • Data di inizio Data di inizio

efisio

Utente Attivo
5 Ago 2008
95
0
0
Buon pomeriggio,
sono ancora alle prese con il mio sitino che mi dà molto da imparare.
NON riesco a recuperare i dati dal DB mediante un "form di ricerca", nel quale devo selezionare due voci (luogo e discipline) e invio i dati (metodo post)
al file ricerca.php che dovrebbe elaborare i dati ricevuti ed estrarre dal db i dati richiesti, ma per il momento faccio acqua da tutte le partie non visualizzo niente a video.
Se può essere utile posto il codice del file ricerca.php

<? php

$host = 'localhost';
$user = 'root';
$password = 'root';
$database = 'utenti';

$db = mysql_connect($host, $user, $password)
or die ( "impossibile connetersi al server");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database");

$query*=*"SELECT*nome, cognome*FROM*iscritti*WHERE*discipline, luogo=".$_POST["discipline", "luogo"];

$ris*=*mysql_query($query);
*
mysql_close($db);
?>

grazie

efisio
 
ciao
dividi il post
$query*=*"SELECT*nome, cognome*FROM*iscritti*WHERE*discipline, luogo=".$_POST["discipline", "luogo"];
PHP:
$query="SELECT nome, cognome FROM iscritti WHERE discipline='".$_POST['discipline']."' and luogo='".$_POST['luogo']."'";
 
ho provato a suddividere il POST come mi hai suggerito, ma ancora non riesco a visualizzare niente a video.

Comincio a pensare che sia il programma che utilizzo a fare le bizze.
Nel senso che ho selezionato "colora sintassi", quindi mi evidenzia in viola le variabili, di conseguenza mi evidenzia la $_POST "luogo", ma non mi evidenzia la variabile discipline. Ciò può concorrere all'errore di lettura da parte del server e quindi non restituire niente a video?

Grazie

Efisio
 
ciao
nello script che hai postato dovressti scrivere subito dopo la query il solito var dump
var_dump($query);
e verificare come viene scritta, se giusta o sbagliata
inoltre prima della query nello stesso modo puoi verificare se il post arriva
var_dump($_POST['discipline']);
var_dump($_POST['luoghi']);
 
ciao
nello script che hai postato dovressti scrivere subito dopo la query il solito var dump
var_dump($query);
e verificare come viene scritta, se giusta o sbagliata
inoltre prima della query nello stesso modo puoi verificare se il post arriva
var_dump($_POST['discipline']);
var_dump($_POST['luoghi']);

-
mi metto subito a lavoro.
efisio
 
Ciao Borgo,
anche utilizzando var_dump non riesco ad avere nessuna info riguardante le variabili "luogo" e "discipline" e l'esegcuzione della query.
Non riesco a proprio a capire dove stò sbagliando.
non ti spazientire se ti chiedo nuovamente AIUTO.

Efisio
 
ciao
posto il form che invia i due post, perche qualche pagine che l'invia dovresti averla


Ecco di seguito il form di invio:

<form action="ricerca.php" name="ricerca" method="post">
<select name="discipline">
<option value="avvocato" >avvocato</option>
<option value="commercialista" >commercialista</option>
<option value="ragioniere" >ragioniere</option>
</select>&nbsp<br>
Dove &nbsp
<select name="luogo">
<option value="AG" >Agrigento</option><option value="AL" >Alessandria</option><option value="AN" >Ancona</option><option value="AO" >Aosta</option><option value="AR" >Arezzo</option><option value="AP" >Ascoli Piceno</option><option value="AT" >Asti</option><option value="AV" >Avellino</option><option value="BA" >Bari</option><option value="BT" >Barletta-Andria-Trani</option><option value="BL" >Belluno</option><option value="BN" >Benevento</option><option value="BG" >Bergamo</option><option value="BI" >Biella</option><option value="BO" >Bologna</option><option value="BZ" >Bolzano</option><option value="BS" >Brescia</option><option value="BR" >Brindisi</option><option value="CA" >Cagliari</option><option value="CL" >Caltanissetta</option><option value="CB" >Campobasso</option><option value="CI" >Carbonia-Iglesias</option><option value="CE" >Caserta</option><option value="CT" >Catania</option><option value="CZ" >Catanzaro</option><option value="CH" >Chieti</option><option value="CO" >Como</option><option value="CS" >Cosenza</option><option value="CR" >Cremona</option><option value="KR" >Crotone</option><option value="CN" >Cuneo</option><option value="EN" >Enna</option><option value="FE" >Ferrara</option><option value="FI" >Firenze</option><option value="FG" >Foggia</option><option value="FC" >Forlì - Cesena</option><option value="FR" >Frosinone</option><option value="-" >Fuori Italia</option><option value="GE" >Genova</option><option value="GO" >Gorizia</option><option value="GR" >Grosseto</option><option value="IM" >Imperia</option><option value="IS" >Isernia</option><option value="SP" >La Spezia</option><option value="AQ" >L'Aquila</option><option value="LT" >Latina</option><option value="LE" >Lecce</option><option value="LC" >Lecco</option><option value="LI" >Livorno</option><option value="LO" >Lodi</option><option value="LU" >Lucca</option><option value="MC" >Macerata</option><option value="MN" >Mantova</option><option value="MS" >Massa Carrara</option><option value="MT" >Matera</option><option value="MD" >Medio Campidano</option><option value="ME" >Messina</option><option value="MI" >Milano</option><option value="MO" >Modena</option><option value="NA" >Napoli</option><option value="NO" >Novara</option><option value="NU" >Nuoro</option><option value="OG" >Ogliastra</option><option value="OT" >Olbia-Tempio</option><option value="OR" >Oristano</option><option value="PD" >Padova</option><option value="PA" >Palermo</option><option value="PR" >Parma</option><option value="PV" >Pavia</option><option value="PG" >Perugia</option><option value="PS" >Pesaro</option><option value="PU" >Pesaro - Urbino</option><option value="PE" >Pescara</option><option value="PC" >Piacenza</option><option value="PI" >Pisa</option><option value="PT" >Pistoia</option><option value="PN" >Pordenone</option><option value="PZ" >Potenza</option><option value="PO" >Prato</option><option value="RG" >Ragusa</option><option value="RA" >Ravenna</option><option value="RC" >Reggio Calabria</option><option value="RE" >Reggio Emilia</option><option value="RI" >Rieti</option><option value="RN" >Rimini</option><option value="RM" >Roma</option><option value="RO" >Rovigo</option><option value="SA" >Salerno</option><option value="SS" >Sassari</option><option value="SV" >Savona</option><option value="SI" >Siena</option><option value="SR" >Siracusa</option><option value="SO" >Sondrio</option><option value="TA" >Taranto</option><option value="TE" >Teramo</option><option value="TR" >Terni</option><option value="TO" >Torino</option><option value="TP" >Trapani</option><option value="TN" >Trento</option><option value="TV" >Treviso</option><option value="TS" >Trieste</option><option value="UD" >Udine</option><option value="VA" >Varese</option><option value="VE" >Venezia</option><option value="VB" >Verbano Cusio Ossola</option><option value="VC" >Vercelli</option><option value="VR" >Verona</option><option value="VV" >Vibo Valentia</option><option value="VI" >Vicenza</option><option value="VT" >Viterbo</option></select><br>
<input type="submit" value="ricerca" />
</form>

Grazie

Efisio
 
Nel codice da te postato non vedo nulla che stampi a video il risultato della query per cui è ovvio che non ti venga visualizzato nulla anche se la select restituisce dei risultati. Sarà mica quello il problema?
Prova così:

PHP:
$host = 'localhost';
$user = 'root';
$password = 'root';
$database = 'utenti';

$db = mysql_connect($host, $user, $password) or die ("impossibile connetersi al server");
mysql_select_db($database, $db) or die ("impossibile connettersi al database");

$query = "SELECT nome, cognome FROM iscritti WHERE discipline = '".$_POST['discipline']."' AND luogo = '".$_POST['luogo']."'";

$ris = mysql_query($query);

mysql_close($db);

while ($elenco_iscritti = mysql_fetch_array($ris)) {
	echo $elenco_iscritti['nome']." ".$elenco_iscritti['cognome']."<br/>";
}
 
ciao
PHP:
Nel codice da te postato non vedo nulla che stampi a video il risultato della query
gli avevo detto di mettere un var_dump($query) dopo l'istruzione e var_dumo($_POST...), penso che sian quelli che dice che non si vedono.
quindi se non si vedono c'è un qualche errore di trasmissione.


p.s.
spero che il codice iniziale che hai postato fosse parziale, se no ha ragioen satifal
 
Ultima modifica:
Nel codice da te postato non vedo nulla che stampi a video il risultato della query per cui è ovvio che non ti venga visualizzato nulla anche se la select restituisce dei risultati. Sarà mica quello il problema?
Prova così:

PHP:
$host = 'localhost';
$user = 'root';
$password = 'root';
$database = 'utenti';

$db = mysql_connect($host, $user, $password) or die ("impossibile connetersi al server");
mysql_select_db($database, $db) or die ("impossibile connettersi al database");

$query = "SELECT nome, cognome FROM iscritti WHERE discipline = '".$_POST['discipline']."' AND luogo = '".$_POST['luogo']."'";

$ris = mysql_query($query);

mysql_close($db);

while ($elenco_iscritti = mysql_fetch_array($ris)) {
	echo $elenco_iscritti['nome']." ".$elenco_iscritti['cognome']."<br/>";
}


Ho seguito i tuoi suggerimenti ma a video non vedo niente.
cos'altro potrei provare?
ho la sensazione di perdermi in un bicchiere d'acqua....ma dev'essere molto profondo.
:confused:
 
Sei sicuro che la select che fai debba restituire qualcosa? Controlla i dati che passi e verifica che sul DB ci siano effettivamente dei record che soddisfano tali condizioni. Se il resultset è vuoto è giusto che non ti venga visualizzato nulla.
Io ho provato lo script che ti ho postato utilizzando la tua form. Ho creato il DB e popolato la tabella che dei dati fittizi e funziona perfettamente.
 
Scusate il ritardo nel rispondervi, ma eccomi qua interessato alle vostre intuizioni.
Penso di avere eseguito il codice in svariati modi, ma niente da fare.
Vi posto il file ricerca.php.
Borgo, cosa intendi per problemi di trasmissione?
C'è da preoccuparsi?

<?php
$host = "localhost";
$user = "root";
$password = "root";
$database = "utenti";

$db = mysql_connect($host, $user, $password)
or die ( "impossibile connetersi al server");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database");

var_dump($_POST['discipline']);
var_dump($_POST['luogo']);

$query="SELECT nome, cognome FROM iscritti WHERE discipline='"
.$_POST['discipline']."' and luogo='".$_POST['luogo']."'";
var_dump($query);


$ris=mysql_query($query);


while ($elenco_iscritti = mysql_fetch_array($ris)) {
echo $elenco_iscritti['nome']." ".$elenco_iscritti['cognome']."<br/>";
}
mysql_close($db);
?>

Ciao

Efisio
 
ciao
se come hai detto i var_dump non restituisono nulla, come minimo se es i post sono vuoti dovrebbe darti string(0) NULL, per trasmissione intendo che non c'è il passaggio di valori tra il form e la pagina.
anche io ho fatto come satifal e lo script funzia.
 
buongiorno,
purtroppo sembra che ci sia un problema di trasferimento dati.
cercherò di vedere cosa posso fare.
Grazie per i consigli

Efisio
 
prova semplicemente con:
PHP:
var_dump($_POST);
se non altro ti stamperà il valore relativo al pulsante d'invio
 

Discussioni simili