Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101

    Non ricevo l'id della tabella.

    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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Nessun consiglio ragazzi,

    ho provato a mettere in echo i valori di tutti gli id presenti nella query ( $id, $idlar, $idalt, $iddia, ...), e a quanto pare ce l'ha proprio con gli 'id' , non me ne passa uno; a differenza dei valori di ( $larghezza, $altezza, ....) che li riconosce tutti e bene.

    bhò!

    Ciao.

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    assegna un etichetta al campo che ti interessa...
    Codice PHP:
     $select 'SELECT pneumatico.id AS pneu_ID, larghezza, altezza, diametro, carico, velocita, marca, modello, prezzo, tipo';


    // la recuperi con

    $id $result['pneu_ID']; 
    le notazioni interne nometabella.colonna sono valide solo per le query, per guidare MysqL sul campo da te voluto, ed evitare quindi collisioni di campi con stesso nome ma tabelle differenti

    ti consiglio di rivedere il resto dello script per lo stesso problema

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101
    Ma sei na roba incredibile,
    hai risolto il problema.


    Grazie dottwatson
    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.