Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    54

    select popolata con dati mysql

    SALVE

    Ho una TABELLA MYSQL CON 3 campi:

    ID AUTOINCREMENTALE
    MESE (con i 12 mesi)
    TESTO (CON UNA SERIE DI COMPETIZIONI CHE SI SVOLGONO IN QUEL MESE.)


    Nel file uno.php
    Ho popolato una Select con i mesi di mysql e la cui value corrisponde al mese stesso.

    Vorrei che una volta scelto il mese si potesse vedere il TESTO corrispondente.

    Vi posto il codice…

    file uno.php


    <?php

    require_once ('sito_php/connloc.php');

    $sql = "SELECT * FROM GARE ORDER BY id ASC";
    $query = mysql_query($sql);
    ?>


    <form action="due.php" name="gare" method="post">
    <select >

    <?php

    while($row = mysql_fetch_assoc($query)) {

    echo "<option value= '".$row['MESE']." '> ".$row['MESE']." </option> ";
    }
    ?>
    <input type="submit" value="Scegli"/>
    </select>
    </form>


    file due.php

    <?php

    require_once ('sito_php/connloc.php');

    $sql = "SELECT TESTO FROM gare WHERE MESE ='$_POST[gare]'" or die ('errore 1 '. mysql_error());
    $query = mysql_query($sql);
    $row = mysql_fetch_array ($query);


    if($_POST[gare]==''):

    echo "errore"; // mi da sempre quest'errore…


    else:

    echo "$row ['TESTO']" ;

    endif;
    ?>


    Grazie....

  2. #2
    Il controllo non lo devi fare sul name del form perhè del form vengono inviatii campi, quindi fai così aggiungi l'attributo name al submit:

    Codice PHP:
    <input type="submit" value="Scegli" name="gare" /> 
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    54
    ottimo consiglio grazie, ma il secondo file è corretto secondo te? Non visualizza il campo 'TESTO' della mia tabella....



    Codice PHP:
    <?php

    require_once ('sito_php/connloc.php');

    $sql "SELECT TESTO FROM gare WHERE MESE ='$_POST[gare]'" or die ('errore 1 'mysql_error());
    $query mysql_query($sql);
    $row mysql_fetch_array ($query);


    if(
    $_POST[gare]==''):

    echo 
    "errore";


    else:

    echo  
    $row['TESTO']   ;



    endif;



    ?>

  4. #4
    Questo non lo so, è giusta l'SQL?.

    Comunque il mio non è un consiglio, è che come avevi fatto tu proprio non era corretto.

    Comunque dovresti fare attenzione nell'utilizzare i dati ricevuti dal POST o GET senza eseguire l'escape degli apici.

    Conviene che ti studi qualche guida sul php specie sulla sicurezza.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    54
    Originariamente inviato da codencode
    Conviene che ti studi qualche guida sul php specie sulla sicurezza.


    Questo è un consiglio!


    Cmq l'sql mi pare corretto, poi non so. Sono un appassionato autodidatta e francamente faccio ancora molti o/errori.

    Quello che ho postato è una prova in locale, per la sicurezza non mi sono preoccupato...

  6. #6
    Fai queste prove:
    1) esegui la query direttamente in phpmyadmin così da verificare la corretta sintassi dell'sql, quindi:
    Codice PHP:
    echo sql 
    prendi il risultato e usalo in phpmyadmin;

    2) stampa l'array $row, quindi:
    Codice PHP:
    print_r($row); 
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  7. #7
    correggi così:
    Codice PHP:
    $sql "SELECT TESTO FROM GARE WHERE MESE ='" mysql_real_escape_string($_POST['gare']) . "'"
    $query mysql_query($sql) or die ('errore 1 'mysql_error());

    // etc etc 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    54
    Ho risolto così:

    Codice PHP:
    <form action="due.php" method="post">
            <select name="gare">
            
            <?php
         
            
    while($row mysql_fetch_assoc($query))   {
                echo 
    "<option name='mese' value= '".$row['ID']." '> ".$row['MESE']." </option> ";
            }
            
    ?>
            </select >
            <input type="submit" value="Scegli"   />
    </form>
    quindi con il nome nella select. Ho ottenuto che fosse passato il valore di ID al file due.php che ho settato così:
    Codice PHP:
    $id $_POST['gare'];

    require_once (
    'sito_php/connloc.php');

    $sql "SELECT * FROM GARE WHERE ID= '$id'  ";
    $query mysql_query($sql);
    while(
    $row mysql_fetch_assoc($query))   {
        
        echo 
    $row['TESTO'] . "
    <hr>
    "
    ;
        
        

    ora funziona proprio come volevo. Non mi resta che sistemare meglio il discorso sicurezza come mi avete consigliato. Grazie a tutti

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.