Query automatica al caricamento pagina

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Ciao ragazzi , spero possiate darmi una mano

Devo eseguire una query al caricamento pagina , ma mi dà errore alla riga mysql_fetch_array , riuscite a capire il perchè ?

PHP:
<?
$chiave=$_REQUEST['chiave'];  
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file xxxx.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file xxxx.php");
$query = "SELECT latte, panna, FROM prodotti WHERE lista='parmalat'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
{
$testo = $row['latte'];
$audio = $row['panna'];
?>




.
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Ciao ragazzi , spero possiate darmi una mano

Devo eseguire una query al caricamento pagina , ma mi dà errore alla riga mysql_fetch_array , riuscite a capire il perchè ?

PHP:
<?
$chiave=$_REQUEST['chiave'];  
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file xxxx.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file xxxx.php");
$query = "SELECT latte, panna, FROM prodotti WHERE lista='parmalat'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
{
$testo = $row['latte'];
$audio = $row['panna'];
?>
.


Ciao, posta l'errore, per vedere cosa dice, magari capiamo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
C'è una virgola in piu

SELECT latte, panna,
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\TEST.php on line 168

Questa è la riga 168

168 $row = mysql_fetch_array($result);


criric

C'è una virgola in più

SELECT latte, panna,

No , le virgole vanno bene deve estrarre dalla colonna latte e dalla colonna panna , anzi aggiungerei anche ID .




Un'altra cosa e se la LISTA della TABELLA PRODOTTI non contiene più parmalat come faccio a dirgli di andare a valsoia ( il record successivo ) ?

Devo creare un'altra query ?
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
No , le virgole vanno bene

non puoi finire con una virgola se no va in errore

ofai

SELECT latte, panna

o

SELECT latte, panna,id
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\TEST.php on line 168

Questa è la riga 168

168 $row = mysql_fetch_array($result);




No , le virgole vanno bene deve estrarre dalla colonna latte e dalla colonna panna , anzi aggiungerei anche ID .




Un'altra cosa e se la LISTA della TABELLA PRODOTTI non contiene più parmalat come faccio a dirgli di andare a valsoia ( il record successivo ) ?

Devo creare un'altra query ?


Ciao, non serve creare query, all'interno di esse c'è una parola
se la utilizzi hai la possibilità di rendere tutto dinamico

Ciao
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Che stupido che sono , avevi ragione tu , era quella virgola a causare l'errore ...

Grazie mille criric !


Ciao, non serve creare query, all'interno di esse c'è una parola
where
se la utilizzi hai la possibilità di rendere tutto dinamico


SELECT latte, panna FROM prodotti WHERE lista='parmalat'";

Estrai LATTE , PANNA dalla tabella PRODOTTI a condizione che nella LISTA vi sia parmalat se non c'è non prende niente , mentre vorrei che in un caso del genere andasse a prendere il record successivo

Quindi se parmalat non c'è più come fa ad andare a valsoia con WHERE ?

:crying:
 

minatore

Utente Attivo
25 Set 2007
410
0
0
Che stupido che sono , avevi ragione tu , era quella virgola a causare l'errore ...

Grazie mille criric !





SELECT latte, panna FROM prodotti WHERE lista='parmalat'";

Estrai LATTE , PANNA dalla tabella PRODOTTI a condizione che nella LISTA vi sia parmalat se non c'è non prende niente , mentre vorrei che in un caso del genere andasse a prendere il record successivo

Quindi se parmalat non c'è più come fa ad andare a valsoia con WHERE ?

:crying:


Scusami non avevo guardato bene la query :incazz2:
vorrei chiederti, per la ricerca dai già delle indicazioni, oppure è libera
nel senso, l'utente clicca su parmalat ed essendo vuota passa alla successiva, questo vuoi fare

Ciao :confused:
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Scusami non avevo guardato bene la query
vorrei chiederti, per la ricerca dai già delle indicazioni, oppure è libera
nel senso, l'utente clicca su parmalat ed essendo vuota passa alla successiva, questo vuoi fare

Ciao

No la pagina si apre con un redirect e mostra i risultati , se i dati su parmalat NELLA COLONNA lista del db non ci sono , passa al record successivo ( della stessa colonna )

Vorrei automatizzare la cosa evitando di inserire più query nel codice
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
alessandro1997

Beh, dovrebbe bastare limitare il numero di risultati a 1:


Ottima idea Alessandro1997 !


Però c'è un inghippo

Ipotizziamo che nella colonna LISTA ci siano 5 record

li chiameremo

A
B
C
D
E


Se A non c'è passa al record B
Se B non c'è passa al record C
Se C c'è ( beccato ) mostra i risultati e FERMATI !


Se uso LIMIT posso limitare la visualizzazione dei risultati , un poco per volta , ma non ottengo il risultato sperato

Sono ancora in alto mare ... :crying:


Rimango in ascolto comunque nel caso venissero fuori altre idee ....


Ciao e ancora grazie per le risposte che ho ricevuto
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Già, mi ero scordato. Nel tuo caso potresti provare così:
Codice:
SELECT latte, panna, lista FROM prodotti ORDER BY FIELD(lista, 'Parmalat', 'lista1', 'lista2') ASC LIMIT 1
Devi inserire manualmente i valori per cui vuoi ordinare.
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Ciao

Già, mi ero scordato. Nel tuo caso potresti provare così:
Codice:

SELECT latte, panna, lista FROM prodotti ORDER BY FIELD(lista, 'Parmalat', 'lista1', 'lista2') ASC LIMIT 1


Ho provato a modificare in questo modo ....

PHP:
$query = "SELECT latte, panna FROM prodotti ORDER BY FIELD(lista, 'parmalat', 'valsoia', 'nestlè') ASC LIMIT 1";

... ma stranamente restituisce un risultato casuale , ( anche se sempre uguale )

Risultato che per'altro non ha nessuna attinenza con la query inviata , insomma fa come gli pare ...
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
non mi è molto chiaro ....

potresti provare anche cosi

PHP:
$query = "SELECT latte, panna FROM prodotti WHERE lista IN ('parmalat', 'valsoia', 'nestlè') ORDER BY lista ASC LIMIT 1";

Dvrebbe restituirti il primo elemento disponibile di lista in ordine alfabetico A-Z

o puoi ordinare in altro modo ORDER BY id DESC // ultimo inserito

ripeto che non mi è molto chiara la tabella che hai e quello che ci vuoi fare

vado per tentativi
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Ciao criric , purtroppo segnala un errore

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\TEST.php on line 170


non mi è molto chiaro ....

Per abbreviare ... lo scenario del rompicapo è questo

Tabella PRODOTTI con due campi

1° campo = LATTE

2° campo = PANNA

Nella colonna che appartiene al campo LATTE ci sono 5 record

1° record = A
2° record = B
3° record = C
4° record = D
5° record = E

Tramite link o redirect si arriva alla pagina che mostra i risultati che non sono fissi ma variabili per modifica / aggiornamento / cancellazione

Ora il problema e che nei risultati deve mostrare un solo record del campo LATTE , non tutti !

Quindi abbiamo :

Se il record A non c'è mostra il record B
Se B non c'è passa al record C
Se C c'è mostra il risultato e FERMATI non andare oltre !


Credo comunque che sarebbe meglio cambiare direzione , a questo punto vorrei assegnare le query a delle variabili per poterle gestire meglio , cosa ne pensate ?
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao

L'errore che ti segnala probabilmente è dovuto ad un errore di sintassi nella query

molto utile stampare a video query ed errori mysql

PHP:
$res = mysql_query($query);

if(!$res) {
   echo $query . "<br/>" . mysql_error();
}

Vediamo se ho capito, la tua tabella è piu o meno cosi?
zerobit.png
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Esatto !

Ora dal campo LATTE come ho già detto , non deve mostrare tutti i risultati , ma :

Se il record A non c'è mostra il record B ( E BASTA )
Se B non c'è passa al record C
Se C c'è mostra il risultato e FERMATI non andare oltre e NON cercare altri record !

Ciao :byebye:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
PHP:
$query = "SELECT latte, panna FROM prodotti WHERE latte IN ('A', 'B', 'C','D','E') ORDER BY latte ASC LIMIT 1";

se ti segnala errori come detto prima stampa query e errore mysql
 

zerobit

Utente Attivo
10 Mar 2012
35
0
0
Ottimo criric !


Ringrazio i partecipanti alla discussione

Grazie infinite per l'aiuto che mi avete dato
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query differenza tra tabelle MySQL 5
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 27
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
M Visualizzazione a video risultati query php PHP 0
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3

Discussioni simili