- Home
- Categorie
- Coding e Sistemistica
- PHP
- Select sql
-
Ciao, spero di non essere diventato un tormento...:o
Come mi hai consigliato ho usato get con un link.. e c'è qualche piccolo passo avanti.. ti posto qualche frammento di codice:link:<a href="search_x.php?id=<? echo $record['id'] ?>"> search_x</a><br>
pagina: (ti posto solo una parte x comodità di lettura)
<?
include("config.inc.php");
include("connect.php");if (isset($_GET['id'])) {$id=$_GET['id'];} else {$id="";}
if (isset($_GET['cognomenome_ric'])) {$cognomenome_ric=$_GET['cognomenome_ric'];} else {$cognomenome_ric="";}
if (isset($_GET['datanasc_ric'])) {$datanasc_ric=$_GET['datanasc_ric'];} else {$datanasc_ric="";}A QUESTO PUNTO SE LA QUERY E' QUESTA:
$query1="SELECT * FROM scheda WHERE zona_off='" . $_GET['zona_off'] . "'";
$risultato1=mysql_query($query1,$db);
$rigo1=mysql_fetch_assoc($risultato1);
?>le righe seguenti:
<tr>
<td width="123"><span class="Stile8">Cognome e nome</span></td>
<td width="451"><input name="cognomenome_ric" type="text" id="cognomenome_ric" value="<? echo stripslashes($rigo1['cognomenome_ric']) ?>" size="35" /></td>
</tr><tr> <td width="123"><span class="Stile8">Cognome e nome</span></td> <td width="451"><input name="cognomenome_off" type="text" id="cognomenome_off" value="<? echo stripslashes($rigo1['cognomenome_off']) ?>" size="35" /></td> </tr>
MI RESTITUISCONO IL COGNOME RICHIESTO
MA SE LA QUERY E' QUESTA:
$query1="SELECT * FROM scheda WHERE zona_off='" . $_GET['zona_off'] . "' AND zona='" . $_GET['zona'] "'";
$risultato1=mysql_query($query1,$db);
$rigo1=mysql_fetch_assoc($risultato1);
?>
MI VIENE RESTITUITO IL SOLITO ERRORE:
Untitled DocumentNotice: Undefined index: zona_off in c:\programmi\easyphp1-8\www\immobiliare\search_x.php on line 93Notice: Undefined index: zona in c:\programmi\easyphp1-8\www\immobiliare\search_x.php on line 93 x:x
SE RISOLVO GIURO CHE TI OFFRO ALMENO UNA CENA DOVUNQUE TU SIA!!!... CIAO
-
Alla query specificata manca un puntino dopo il secondo $_GET, potrebbe essere questo l'errore.
$query1="SELECT * FROM scheda WHERE zona_off='" . $_GET['zona_off'] . "' AND zona='" . $_GET['zona'] . "'";Curiosità
Ma la selezione dei dati viene fatta dall'**amministratore **o dal client?
Le variabili $_GET['zona_off'] & $_GET['zona'] da dove arrivano?
Cosa centra la variabile id, da te scritta nell'url
<a href="search_x.php?id=<? echo $record['id'] ?>"> search_x</a> e a cosa servirebbe se alla selezione dei dati invii un altro tipo di variabile $_GET?Rispondi alle domande perchè fondamentali
Ci sentiamo e non preoccuparti che NON SCOCCI
-
Dunque...
il puntino c'è, era solo scomparso dopo il copia incolla del codice.-
la selezione viene fatta dall'amministratore
2)Se ho capito bene cosa mi chiedi in questo punto, le variabili sono richiamate all'inizio della pag. Come ti ho postato prima. In pratica il link apre la pagina in quetione dove ci sono una serie di queste righe di codice:
if (isset($_GET['zona'])) {$zona=$_GET['zona'];} else {$zona="";}
più sotto ci sono gli"echo" per stampare a video i risultati della query.
E' la stessa cosa che faccio nelle pagine di visualizzazione dei dati che arrivano dalla pagina di inserimento e di solito funziona (infatti se vai al post che ti ho mandato prima, se nella select non inseriscio AND...... ma solo
$query1="SELECT * FROM scheda WHERE zona_off='" . $_GET['zona_off'] . "'"; ecc...., la cosa funziona. -
La variabile 'id', inserita **nel link ** mi serve perchè il link in questione deve riferirsi a quel particolare id. cioè:
"estrai dal db tutti i campi richiesti che abbiano uguale valore degli stessi campi di quell'id" Spero di essere riuscito a spiegarmi... in questi casi è sempre molto difficile!!... ancora grazie, alla prox
-
-
Ciao.. faccio un passo indietro
ho provato con phpmy admin, solo sul db questa query:
SELECTcognomenome_ric
,cognomenome_off
FROMscheda
WHEREzona
= 'stadio' ORzona_off
= 'stadio'
E FUNGE BENISSIMOCome vedi funge con OR e non con AND. Ovviamente ora in php devo sostituire 'stadio' con una variabile che contenga i valori
come cz (!!! ) faccio?
Ciao
-
Quindi, per quanto ho capito, invii alla pagina **search_x.php **solo l'id in modo da estrapolare i dati che fanno parte di quell'id.
A questo punto le altre variabili $_GET, ossia $_GET['zona_off'] e $_GET['zona'], mi dici da dove arrivano?
CIAO
-
Ciao, eccomi di nuovo qui..
in questi giorni mi hai dato una serie di input e ti ringrazio, ragionandoci sopra ho cambiato qualcosa e credo di essermi un po avvicinato alla soluzione. Almeno nel senso che non ricevo più l'errore di notice che mi diceva che non vedeva le variabili. Ora però mi da errore sulla query.
Ti posto prima l'errore e poi il codice.
A prestoUntitled DocumentWarning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in ........
<?
include("config.inc.php");
include("connect.php");if (isset($_GET['id'])) {$id=$_GET['id'];} else {$id="";}
if (isset($_GET['zona'])) {$zona=$_GET['zona'];} else {$zona="";}
if (isset($_GET['zona_off'])) {$zona_off=$_GET['zona_off'];} else {$zona_off="";}$zona="SELECT zona FROM scheda WHERE id='".$_GET['id']."'";
$zona_off="SELECT zona_off FROM scheda WHERE id='".$_GET['id']."'";$query1="SELECT cognomenome_off FROM scheda WHERE zona='$zona' AND zona_off='$zona_off'";
$risultato1=mysql_query($query1,$db);
$rigo1=mysql_fetch_assoc($risultato1);
?>
-
Questo perchè nei primi due select non esiste una query che estrapola le variabili che tu intendi, comunque il codice è sbagliato per quello che tu vorresti fare.
Adesso forse ti do una dritta. VEDIAMO$SELECT="SELECT zona, zona_off FROM scheda WHERE id='".$_GET['id']."'";
$QUERY = mysql_query($SELECT,$db);
$OBJ = mysql_fetch_object($QUERY);
$zona = ($OBJ->zona); // CAMPO zona DELLA TABELLA scheda
$zona_off = ($OBJ->zona_off); // CAMPO zona_off DELLA TABELLA scheda$query1="SELECT cognomenome_off FROM scheda WHERE zona='$zona' AND zona_off='$zona_off'";
$risultato1=mysql_query($query2,$db);
$rigo1=mysql_fetch_assoc($risultato1);Comunque, per quel che stò capendo, ti converrebbe creare un'altra tabella riferita a zona e zona_off in cui arrivi anche l'id che fa riferimento al $_GET['id']
A presto ............ fammi sapere
-
Ciao, il problema è che non c'è proprio verso di fargli passare le variabili. Il codice che mi hai postato, non restituisce messaggi d'errore ma non visualizza neanche alcun risultato. x:x
Ho provato di tutto (almeno quel poco che so), ma non riesco. per fare una prova ho fatto una semplice queri sostituendo alle variabili dei valori costanti inseriti nel db e funge tranquillamente...
-
Si, infatti il problema è prorio quello, non riesco a passargli le variabili.
-
Ciao, ancora qui....
Ho fatto altre prove, altri mal di testa... ho anche capito delle cose che prima per me erano un po nebulose.. e questa è la buona notizia._La pessima è che ancora non ne vengo fuori...
Faccio un piccolo riepilogo:
ho necessità, dato un id, di confrontare il valore contenuto nei campi del record appartenente a quell'id, col valore contenuto negli altri campi uguali all'interno di TUTTO il db (es. campo 'zona' dell'id scelto, con il campo 'zona' di tutti gli altri record) ed estrarre tutti quelli che contengono uguale valore (es. se campo 'zona' id ='stadio' mi servono tutti gli altri campi 'zona' presenti nel db che abbiano valore 'stadio)
N.B. IL DATO DEL RECORD INDIVIDUATO DALL'ID VIENE CHIAMATO 'ZONA' I DATI DA CONFRONTARE SONO NOMINATI 'ZONA_OFF'
Ho fatto un tentativo in cui, in una pagina ho passato, con $_GET i dati dell'id da un link:
<a href="search_x.php?id=<? echo $record['id'] ?>"> search_x</a><br>
poi nella pagina in questione:
if (isset($_GET['id'])) {$id=$_GET['id'];} else {$id="";}
if (isset($_GET['cognomenome_ric'])) {$cognomenome_ric=$_GET['cognomenome_ric'];} else {$cognomenome_ric="";}//passaggio dei dati dell'id
e fin qui tutto bene poi, sempre nella stessa pagina, ho passato i dati dei campi che mi interessano in tutto il db (non solo quelli relativi al record):
$zona_off="SELECT zona_off FROM scheda ";
$risultato=mysql_query($zona_off,$db);
while($record=mysql_fetch_assoc($risultato))
{
echo $record ['zona_off'];
?>
<hr />
<? } ?>
<hr />
Questa query mi stampa a video i risultati aspettati presenti in TUTTO il db.
Anche questa query:
$query1="SELECT * FROM scheda WHERE id='".$_GET['id']."'";
mi restituisce l'id del record su cui voglio effettuare il confronto, insieme ai dati richiesti.
Ma se faccio:
$query1="SELECT * FROM scheda WHERE id='".$_GET['id'] . "' AND zona='$zona' OR zona_off='$zona_off' ";
oppure:
$query1="SELECT * FROM scheda WHERE id='$id' AND zona='$zona' OR zona_off='$zona_off'";
pagina bianca... questa volta però senza messaggi d'errore, quindi suppongo ancora errori nel passaggio dei parametri
ripeto che però la stessa query testata in phpmyadmin senza variabili:
SELECTcognomenome_ric
,cognomenome_off
FROMscheda
WHEREid
= 'pippo' ANDzona
= 'stadio' ORzona_off
= 'stadio'
funge... non ho piu idea di come fare.
Ho provato anche il codice che mi hai postato qualche giorno fa:
$SELECT="SELECT zona, zona_off FROM scheda WHERE id='".$_GET['id']."'";
$QUERY = mysql_query($SELECT,$db);
$OBJ = mysql_fetch_object($QUERY);
$zona = ($OBJ->zona); // CAMPO zona DELLA TABELLA scheda
$zona_off = ($OBJ->zona_off); // CAMPO zona_off DELLA TABELLA scheda
$query1="SELECT * FROM scheda WHERE zona='$zona' AND zona_off='$zona_off'";
$risultato1=mysql_query($query1,$db);
$rigo1=mysql_fetch_assoc($risultato1);?>Anche lui non mi restituisce messaggi d'errore ma una pagina vuota.
Tu mi consigliavi di fare due tabelle.. sono anche pronto a provarci ma mi chiedo: se in mysql funge, il problema sta evidentemente nel modo di passare i parametri, facendo due tabelle, una x le offerte (es.:zona_off) ed una per le richieste (es.:zona) , non avrei gli stessi problemi o magari forse anche qualcuno in piu?...Grazie comunque per tutto il tempo che mi stai dedicando.
Ciao.