Salve a tutti,
è da un po che mi scervello per riuscir a leggere più risultati di una query..
Ho fatto le query direttamente nel database e funzionano, ma in php non mi stampa le righe richieste.
il codice è un po incasinato, però il succo è:
Data una scelta dell'utente di una certa Cantina (es. Cantina Merlo), dovrei trovare tutti i vini di quella cantina.
I vini hanno delle partite, se un vino ha diverse partite, devo considerare quella con un prezzo inferiore.
il mio problema è che arrivo alla prima select e mi considera solo un risultato mentre gli altri che sono effettivamente nella tabella non li guarda.. per es.
L'utente richiede i vini della Cantina Merlo.
I vini della cantina, sono:
- Barbera
- Malvasia
Per Barbera ho 2 partite: la prima ha importo 8 e la seconda 7;
per il Malvasia ho 3 partite: la prima ha importo 6, la seconda 5, la terza 7.
In questo caso dovrei ottenere (ho anche altri dati, ma a me interessano solo questi nelle query):
Barbera 7
Malvasia 5
mentre io adesso ottengo solo Barbera 7
Se qualcuno sa come aiutarmi... ringrazio in anticipo!
è da un po che mi scervello per riuscir a leggere più risultati di una query..
Ho fatto le query direttamente nel database e funzionano, ma in php non mi stampa le righe richieste.
il codice è un po incasinato, però il succo è:
Data una scelta dell'utente di una certa Cantina (es. Cantina Merlo), dovrei trovare tutti i vini di quella cantina.
I vini hanno delle partite, se un vino ha diverse partite, devo considerare quella con un prezzo inferiore.
PHP:
echo"<table border=\"2\">
<tr><th>Nome Vino</th>
<th>Annata</th>
<th>Descrizione</th>
<th>Categoria</th>
<th>Cantina</th>
<th>Prezzo a bottiglia</th>
<th>Quantita'</th>
<th>Carrello</th></tr>";
$sq1a = "SELECT v.id_vino FROM vini v WHERE v.cantina = '$cantina'";
$sr1a = mysql_query($sq1a, $link);
$nr1a = mysql_num_rows($sr1a);
$fr1a= mysql_fetch_row($sr1a);
echo"$fr1a[0], $nr1a";
for ($i=0; $i<=$nr1a = mysql_num_rows($sr1a); $i++)
{
$sq1b = "SELECT min(i.prezzo) as prezzo FROM inventario i WHERE i.id_vino = '$fr1a[0]'";
$sr1b = mysql_query($sq1b, $link);
$fr1b = mysql_fetch_row($sr1b);
}
echo " $fr1b[0]";
$sq1c = "SELECT DISTINCT v.id_vino, v.nome, v.annata, v.descrizione, c.tipologia, v.cantina, i.prezzo FROM vini v, categoria c, inventario i WHERE v.id_vino = i.id_vino and v.categoria = c.tipologia and i.prezzo = '$fr1b[0]' and v.cantina = '$cantina' ORDER BY v.nome";
$sr1c = mysql_query($sq1c, $link);
$nr1c = mysql_num_rows($sr1c);
for ($y = 0; $fr1c = mysql_fetch_row($sr1c); $y++)
{
echo"<tr>";
foreach( $fr1c as $key => $value)
if ($key == "id_vino")
{
echo "<input type=\"hidden\" name=\"idvino\" value=$value />";
}
else
{
echo "<td> $value </td>";
}
echo "<td>
<select name=\"quantita\">
<option value=\"1\">1</option>
<option value=\"3\">3</option>
<option value=\"6\">6</option>
<option value=\"9\">9</option>
<option value=\"21\">21</option>
<option value=\"30\">30</option>
<option value=\"100\">100</option>
</select>
</td>
<td><input type=\"submit\" value=\"Aggiungi\" /></td>
</tr>";
}
}
il mio problema è che arrivo alla prima select e mi considera solo un risultato mentre gli altri che sono effettivamente nella tabella non li guarda.. per es.
L'utente richiede i vini della Cantina Merlo.
I vini della cantina, sono:
- Barbera
- Malvasia
Per Barbera ho 2 partite: la prima ha importo 8 e la seconda 7;
per il Malvasia ho 3 partite: la prima ha importo 6, la seconda 5, la terza 7.
In questo caso dovrei ottenere (ho anche altri dati, ma a me interessano solo questi nelle query):
Barbera 7
Malvasia 5
mentre io adesso ottengo solo Barbera 7
Se qualcuno sa come aiutarmi... ringrazio in anticipo!