Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema con box select

    Salve, io vorrei far si che se si seleziona una determinata scelta da un box select, in un secondo box vengano richiamati dal database i dati filtrati secondo la richiesta.

    Se si seleziona dal box Platform una determinata piattaforma, in base all'id nel box game vengano solamente inseriti i giochi di quella determinata piattaforma solamente.

    Provando la query modificata secondo la richiesta, aggiungendo "WHERE platform=1" a $query1 mi viene stampato a video la mia richiesta, quindi l'azione che faccio svolgere è corretta sintatticamente.. quindi mi chiedo cosa sbaglio?

    Codice PHP:
    <?php

    $query1 
    "SELECT id, title FROM gc_games";

    $query2 "SELECT id, autor FROM gc_autors";

    $query3 "SELECT * FROM gc_platforms";

    $results1 mysql_query($query1$db);

    $results2 mysql_query($query2$db);

    $results3 mysql_query($query3$db);

    ?>


    <form method="post" action="save_news.php">
    <font color="#CCCCCC" face="Verdana, Arial, Helvetica, sans-serif" size="-1" style="font-weight: bolder;">
    <h2>FORM DI INSERIMENTO NEWS</h2>
    <table cellpadding="2" cellspacing="10" bgcolor="#333333">
        <tr bgcolor="#999999">
         <td align="right">Titolo:</td>
         <td><input type="text" name="title" size="40" /></td>
        </tr>
        <tr bgcolor="#999999">
         <td align="right">Tipo:</td>
         <td><select name="type">
                <option value="news">News</option>
                <option value="review">Recensione</option>
                <option value="preview">Anteprima</option>
            </select></td>
        </tr>
        <tr bgcolor="#999999">
         <td align="right" >Piattaforma:</td>
         <td><select name="platform">
                 <option value=""></option>
                    <?php
                
    while($row3 mysql_fetch_array($results3))
                      {
                          echo 
    "<option value=\"$row3[id]\">$row3[vendor] - $row3[name]</option>";
                      }
                
    ?>
             </select>
         </td>
        </tr>
        <tr bgcolor="#999999">
         <td align="right" >Titolo Gioco:</td>
         <td><select name="game">
                 <?php
                
    if($row3['id']  == '1')
                {
                    
    $query1 .= "WHERE platform=1";
                    while(
    $row3 mysql_fetch_array($results3))
                      {
                          echo 
    "<option value=\"$row1[id]\">$row1[title]</option>";
                      }
                } 
                elseif(
    $row3['id'] == '2')
                {    
                    
    $query1 .= "WHERE platform=2";
                    while(
    $row3 mysql_fetch_array($results3))
                      {
                          echo 
    "<option value=\"$row1[id]\">$row1[title]</option>";
                      }
                }
                elseif (
    $row3['id'] == '3')
                {
                    
    $query1 .= "WHERE platform=3";
                    while(
    $row3 mysql_fetch_array($results3))
                      {
                          echo 
    "<option value=\"$row1[id]\">$row1[title]</option>";
                      }
                }
                else
                {
                    echo 
    "<option value=\"\"></option>";
                }
                
    ?>
             </select>
         </td>
        </tr>
        <tr bgcolor="#999999">
         <td align="right" valign="top">Testo:</td>
         <td><textarea cols="60" rows="40" name="content"></textarea></td>
        </tr>
        <tr bgcolor="#999999">
         <td align="right" valign="top">Autore:</td>
         <td style="color:#FFFFFF;"><?php echo "" ?>
         </td>
        </tr>
        <tr>
         <td colspan="2" align="center"><input type="submit" value="Invia" /><input type="reset" value="Cancella" /></td>
        </tr>
    </table>
    </font>

    </form>
    Ho inserito:

    Codice PHP:
    else
    {
    echo 
    "<option value=\"\"></option>";

    Xkè cosi facendo mi stampi una casella vuota quando non è selezionata alcuna piattaforma
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Bisogna eseguire di nuovo le query.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Di più non capisco il tuo codice. Fai esguire una query (la 3), fai un ciclo per stampare a video i valori ricavati ma usi di nuovo $row3 fuori dal ciclo cioè con l'ultimo valore.

    Se tu vuoi popolare una combo dal valore selezionato prima dovresti usare anche il javascript.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Non li conosco i javascript.. Ne servirebbe uno che ricarichi la pagina?

    Cmq io con $query1 .= "WHERE platform == 1"; modifico la query di modo che faccia ciò che voglio io.. quindi ora dovrei inserire un javascript che faccia cosa? Cosi lo cerco e vedo se funziona
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da Chef89
    Non li conosco i javascript.. Ne servirebbe uno che ricarichi la pagina?

    Cmq io con $query1 .= "WHERE platform == 1"; modifico la query di modo che faccia ciò che voglio io.. quindi ora dovrei inserire un javascript che faccia cosa? Cosi lo cerco e vedo se funziona
    Modifichi $query1 ma non fai nessuna mysql_query di più usi mysql_fetch_array($results3) che non corrisponde a $query1 ma a $query3.

    Il fatto di modificare una stringa pure contenendo una query non esegue la query.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Ho modificato il codice ora è:

    Codice PHP:

    <?php
                
    if($row3['id']  == '1')
                {
                    
    $query1 .= "WHERE platform=1";
                    while(
    $row1 mysql_fetch_array($results1))
                      {
                          echo 
    "<option value=\"$row1[id]\">$row1[title]</option>";
                      }
                } 
                elseif(
    $row3['id'] == '2')
                {    
                    
    $query1 .= "WHERE platform=2";
                    while(
    $row1 mysql_fetch_array($results1))
                      {
                          echo 
    "<option value=\"$row1[id]\">$row1[title]</option>";
                      }
                }
                elseif (
    $row3['id'] == '3')
                {
                    
    $query1 .= "WHERE platform=3";
                    while(
    $row1 mysql_fetch_array($results1))
                      {
                          echo 
    "<option value=\"$row1[id]\">$row1[title]</option>";
                      }
                }
                else
                {
                    echo 
    "<option value=\"\"></option>";
                }
                
    ?>
    Ma lo stesso non funziona
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Manca sempre la mysql_query prima di mysql_fetch_array.

    Comunque anche cosi non andrà bene perche devi capire che $row3['id'] si riferisce al ciclo della select "Platform" e che dopo tu la usi fuori dal ciclo ( fuori dal while per essere chiari ) e che quindi $row3['id'] avrà l'ultimo valore letto dalla query 3.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Di più se vuoi popolare la seconda select dal valore della prima devi (con php) fare un submit.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Io ho creato un nuovo $results con mysql_query che rielabora la query dopo l'aggiunta apportata (WHERE ecc) ora con javascript come faccio a far si che si aggiorni? senza dover aggiungere un submit?
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

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.