E' assurdo, son quattro giorni che non riesco a capire perchè la query sotto non mi passa il valore di 'pneumatico.id'.
Ho queste tabelle:
"settore"
+----+---------+
| id | settore |
+----+---------+
| 1 | Auto |
| 2 | Moto |
| 3 | Quad |
+----+---------+
"larghezza"
+----+-----------+
| id | larghezza |
+----+-----------+
| 1 | 120 |
| 2 | 125 |
| 3 | 130 |
| 4 | 140 |
| 5 | 190 |
| 6 | 175 |
| 7 | 185 |
| 8 | 205 |
| 9 | 215 |
e così via per le tabelle "altezza , diametro , carico , velocita , marca , modello , tipo
e poi ho la tabella pneumatico che mi combina gli 'id' delle varie tabelle sopra, e mi restituisce il prezzo di ogni singolo pneumatico:
"pneumatico"
*********************** 1. row ******************************
id => 1
id_settore => 1
id_larghezza => 8
id_altezza => 7
id_diametro => 5
id_carico => 9
id_velocita => 10
id_marca => 7
id_modello => 8
id_tipo => 2
prezzo => € 10.00
****** e via altre righe con altre combinazioni per altri pneumatici*************
Il mio problema è che con questa query non riesco ad ottenere l'id della tabella pneumatico.
Codice PHP:
$pneumatico_sel = @mysql_query("SELECT pneumatico.id, larghezza, altezza, diametro, carico, velocita, marca, modello, tipo, prezzo
FROM larghezza, altezza, diametro, carico, velocita, marca, modello, tipo, settore, pneumatico
WHERE pneumatico.id_settore='1' AND settore.id=pneumatico.id_settore
AND pneumatico.id_larghezza='8' AND larghezza.id=pneumatico.id_larghezza
AND pneumatico.id_altezza='7' AND altezza.id=pneumatico.id_altezza
AND pneumatico.id_diametro='5' AND diametro.id=pneumatico.id_diametro
AND pneumatico.id_carico='9' AND carico.id=pneumatico.id_carico
AND pneumatico.id_velocita='10' AND velocita.id=pneumatico.id_velocita
AND pneumatico.id_marca='7' AND marca.id=pneumatico.id_marca
AND pneumatico.id_modello='8' AND modello.id=pneumatico.id_modello
AND pneumatico.id_tipo=tipo.id", $cnsdb);
la cosa molto curiosa è che questa query se la faccio direttamente dal prompt di MySQL mi da i risultati giusti e aspettati ma se la passo tramite PHP mi da i valori giusti di larghezza, settore, ecc dei pneumatici, ma non mi da l'id del pneumatico.
Vi posto il codice in questione:
Codice PHP:
<?php // 18
include_once 'include/database.php';
$idsettore=$_SESSION['idsettore'];
$select = 'SELECT pneumatico.id, larghezza, altezza, diametro, carico, velocita, marca, modello, prezzo, tipo';
$from = ' FROM larghezza, altezza, diametro, carico, velocita, marca, modello, tipo, settore, pneumatico';
$where = " WHERE pneumatico.id_settore='$idsettore' AND settore.id=pneumatico.id_settore AND pneumatico.id_tipo=tipo.id";
$idlarghezza = $_POST['idlarghezza'];
if ($idlarghezza != '') {
$where .= " AND pneumatico.id_larghezza='$idlarghezza' AND larghezza.id=pneumatico.id_larghezza";
} else {
$where .= ' AND pneumatico.id_larghezza=larghezza.id';
}
$idaltezza = $_POST['idaltezza'];
if ($idaltezza != '') {
$where .= " AND pneumatico.id_altezza='$idaltezza' AND altezza.id=pneumatico.id_altezza";
} else {
$where .= ' AND pneumatico.id_altezza=altezza.id';
}
$iddiametro = $_POST['iddiametro'];
if ($iddiametro != '') {
$where .= " AND pneumatico.id_diametro='$iddiametro' AND diametro.id=pneumatico.id_diametro";
} else {
$where .= ' AND pneumatico.id_diametro=diametro.id';
}
$idcarico = $_POST['idcarico'];
if ($idcarico != '') {
$where .= " AND pneumatico.id_carico='$idcarico' AND carico.id=pneumatico.id_carico";
} else {
$where .= ' AND pneumatico.id_carico=carico.id';
}
$idvelocita = $_POST['idvelocita'];
if ($idvelocita != '') {
$where .= " AND pneumatico.id_velocita='$idvelocita' AND velocita.id=pneumatico.id_velocita";
} else {
$where .= ' AND pneumatico.id_velocita=velocita.id';
}
$idmarca = $_POST['idmarca'];
if ($idmarca != '') {
$where .= " AND pneumatico.id_marca='$idmarca' AND marca.id=pneumatico.id_marca";
} else {
$where .= ' AND pneumatico.id_marca=marca.id';
}
$idmodello = $_POST['idmodello'];
if ($idmodello != '') {
$where .= " AND pneumatico.id_modello='$idmodello' AND modello.id=pneumatico.id_modello";
} else {
$where .= ' AND pneumatico.id_modello=modello.id';
}
?>
<table border="3" cellpadding="3" cellspacing="3">
<tr><th rowspan="2"><th colspan="6">Modelli pneumatico per "<?php echo $_SESSION['settore'] ?>"</th></tr>
<tr><th>Nome:</th><th>Dimensioni:</th><th>Indici:</th><th>Prezzo:</th><th>Tipo:</th><th>Opzioni:</th></tr>
<?php // 85
$pneumatico_sel = @mysql_query($select . $from . $where, $cnsdb);
if (!$pneumatico_sel) {
echo '</table>';
exit('
Errore: lista modelli non caricata!' . 'mysql_error()' .'</p>');
}
while ($result = mysql_fetch_array($pneumatico_sel)) {
echo "<tr valign='top'>\n";
$id = $result['pneumatico.id'];
$idlar = $result['larghezza.id'];
$larghezza = htmlspecialchars($result['larghezza']);
$idalt = $result['altezza.id'];
$altezza = htmlspecialchars($result['altezza']);
$iddia = $result['diametro.id'];
$diametro = htmlspecialchars($result['diametro']);
$idcar = $result['carico.id'];
$carico = htmlspecialchars($result['carico']);
$idvel = $result['velocita.id'];
$velocita = htmlspecialchars($result['velocita']);
$idmar = $result['marca.id'];
$marca = htmlspecialchars($result['marca']);
$idmod = $result['modello.id'];
$modello = htmlspecialchars($result['modello']);
$idtip = $result['tipo.id'];
$tipo = htmlspecialchars($result['tipo']);
$prezzo = htmlspecialchars($result['prezzo']);
echo "<th>$id</th><td>$marca $modello</td><td>$larghezza / $altezza / $diametro</td><td>$carico $velocita</td><td>€ $prezzo</td><td>$tipo</td>";
echo "<td>[url='modifica_pneumatici.php?id=$id']Modifica[/url] |" .
"[url='elimina_pneumatici.php?id=$id']Elimina[/url]</td>";
echo "</tr>\n";
}
?>
</table>
Come vedete i valori li prende via '$_POST' da un form ma non ci sono problemi a riconoscere i valori passati, l'unico problema è estrapolare l'id dalle varie righe di combinazione per poi passarli insieme ai link
Codice PHP:
echo "<td>[url='modifica_pneumatici.php?id=$id']Modifica[/url] |" .
"[url='elimina_pneumatici.php?id=$id']Elimina[/url]</td>";
Spero di essermi spiegato nel migliore dei modi e che qualcuno sappia darmi una mano che ripeto son 4 giorni che cambio e ricambio impostazioni al codice ma è come se non avessi fatto niente
Ripeto: dal prompt di mysql va bene, da codice php no!
Grazie per ora
Ciao.