ciclare una query

Salve a tutti è da un pò che seguo e adesso mi sono iscritto per chiedere il vostro aiuto, ho provato a cercare ma non ho trovato niente, vi spiego il mio problema:

//semplice query sulla mia tabella
$query1 = "SELECT * FROM foglio_prodotti WHERE data_pubblicazione <= '".$data_attuale."' ORDER BY id_classe";
$result1 = mysql_query($query1) or die(mysql_error());

while($row1 = mysql_fetch_array($result1)){
  $array_delle_classi[$row1['id_classe']] = $row1['id_foglio'];
}
// in $array_delle_classi ci sono gli id_foglio che hanno data_pubblicazione <= oggi e contatore massimo

//quello che voglio fare è ciclare questa query per estrarre i dati
foreach($array_delle_classi as $key => $value){
$query2 = "SELECT * FROM foglio_prodotti, classe_prodotti WHERE foglio_prodotti.id_classe = '".$value."' AND foglio_prodotti.id_classe = classe_prodotti.id_classe";
//echo $query2."<br />\n";
$result2 = mysql_query($query2) or die(mysql_error());
$row2 = mysql_fetch_array($result2) or die(mysql_error());

echo "<pre>".$row2['nome_classe']."</pre>";// per esempio
}

il problema è che non funziona cioè se eseguo la echo $query2 vedo che la query viene creata correttamente

ma al momento che faccio l'assegnazione a $row2 i risultati non ci sono...e non capisco come fare! ???

idee? suggerimenti? mi do all'ippica?? :-\

inviato 9 anni fa
spillone
modificato 9 anni fa
X 0 X

Dunque:

La query viene creata correttamente,  è corretta la sintassi (apici/doppi apici sballati, ecc)?

E' possibile che per quella query non ci siano risultati? Hai controllato che vengano restituite delle righe?

risposto 9 anni fa
LonelyWolf
X 0 X

Forse il mio problema è un pò a monte, ho una tabella fatta cosi:

id_foglio*, id_classe**, data_pubblicazione, url, contatore

*chiave primaria

**chiave esterna

devo costruire una query che mi estragga tutti le righe tali che data_pubblicazione <= oggi e che il contatore per ogni id_classe sia il massimo

cioè x esempio:

1,10,20061010,*******,1

2,15,20060510,*******,1

3,10,20061218,*******,2

estrae la riga 2 e la 3

 

risposto 9 anni fa
spillone
X 0 X

La query viene creata correttamente,  è corretta la sintassi (apici/doppi apici sballati, ecc)?

E' possibile che per quella query non ci siano risultati? Hai controllato che vengano restituite delle righe?

sembra di si, se faccio echo $query2."<br />" dentro a quel foreach()

ottengo 3 righe correttamente, fatte così:

SELECT * FROM foglio_prodotti, classe_prodotti WHERE foglio_prodotti.id_classe = '7' AND foglio_prodotti.id_classe = classe_prodotti.id_classe

SELECT * FROM foglio_prodotti, classe_prodotti WHERE foglio_prodotti.id_classe = '8' AND foglio_prodotti.id_classe = classe_prodotti.id_classe

SELECT * FROM foglio_prodotti, classe_prodotti WHERE foglio_prodotti.id_classe = '6' AND foglio_prodotti.id_classe = classe_prodotti.id_classe

risposto 9 anni fa
spillone
X 0 X

per prima cosa proverei a vedere se le varie query possono essere riunite in un unica interrogazione.

Poi ho notato che nel codice riportato nel primo messaggio l'istruzione mysql_fetch_array non è all'interno di un ciclo while quindi ti restituisce una sola riga per ciascuna query che esegui (ti aspetti solo un riultato per ciascuna query?) Ma c'è un'altro problema. Tutti i risultati estratti da mysql_fetch_array vendono sempre salvati (e sovrascritti!) su $row2.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

per prima cosa proverei a vedere se le varie query possono essere riunite in un unica interrogazione.

Poi ho notato che nel codice riportato nel primo messaggio l'istruzione mysql_fetch_array non è all'interno di un ciclo while quindi ti restituisce una sola riga per ciascuna query che esegui (ti aspetti solo un riultato per ciascuna query?) Ma c'è un'altro problema. Tutti i risultati estratti da mysql_fetch_array vendono sempre salvati (e sovrascritti!) su $row2.

 :bye:

Grazie 1000 a tutti per l'aiuto, ho risolto il problema che era frutto di un banale errore di distrazione!!

foglio_prodotti.id_classe = 'qualcosa'  in realtà doveva essere foglio_prodotti.id_foglio = 'qualcosa'

ti credo che non usciva niente!!

cavolo un giorno di lavoro perso per una distrazione :tichedoff: :buck:

grazie e scusate il disturbo.

risposto 9 anni fa
spillone
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda