Visualizzazione risultati 1 fino 13 di 13

Discussione: Selezionare dati dal database attraverso menù a scomparsa [era: Sql]

  1. #1
    Guest

    Predefinito Selezionare dati dal database attraverso menù a scomparsa [era: Sql]

    Stò imparando a gestire il mio database.
    Riesco a visualizzare tutti i record del mio recordset, però io vorrei poter scegliere i dati da visualizzare tramite un menu a scomparsa.
    Quando seleziono il tipo di dati da visualizzare e do la conferma con il mio pulsante, viene ricaricata la pagina e continuo a vedere sempre gli stessi dati.

    Qualcuno sa dirmi come devo fare a passare la mia richiesta al server ?
    Grazie

  2. #2
    Guest

    Predefinito

    puoi spiegarti meglio? che script php usi?
    posta un po' di codice... :))))) senno non si riesce a capire

  3. #3
    Guest

    Predefinito Ecco il codice

    Codice PHP:
    <?php require_once('Connections/Mysql.php'); ?>
    <?php
    $currentPage
    = $HTTP_SERVER_VARS["PHP_SELF"];

    function
    GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

    switch (
    $theType) {
    case
    "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case
    "long":
    case
    "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case
    "double":
    $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
    break;
    case
    "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case
    "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return
    $theValue;
    }

    $editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
    if (isset(
    $HTTP_SERVER_VARS['QUERY_STRING'])) {
    $editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
    }

    if ((isset(
    $HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
    $insertSQL = sprintf("INSERT INTO Formazioni (Giornata, Squadra, Giocatore, Punti) VALUES (%s, %s, %s, %s)",
    GetSQLValueString($HTTP_POST_VARS['Giornata'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Squadra'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Giocatore'], "text"),
    GetSQLValueString($HTTP_POST_VARS['Punti'], "text"));

    mysql_select_db($database_Mysql, $Mysql);
    $Result1 = mysql_query($insertSQL, $Mysql) or die(mysql_error());
    }

    $colname_Recordset1 = "1";
    if (isset(
    $HTTP_SERVER_VARS[' '])) {
    $colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_SERVER_VARS[' '] : addslashes($HTTP_SERVER_VARS[' ']);
    }
    mysql_select_db($database_Mysql, $Mysql);
    $query_Recordset1 = sprintf("SELECT * FROM Formazioni WHERE Giornata = '%s'", $colname_Recordset1);
    $Recordset1 = mysql_query($query_Recordset1, $Mysql) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);

    $queryString_Recordset1 = "";
    if (!empty(
    $HTTP_SERVER_VARS['QUERY_STRING'])) {
    $params = explode("&", $HTTP_SERVER_VARS['QUERY_STRING']);
    $newParams = array();
    foreach (
    $params as $param) {
    if (
    stristr($param, "pageNum_Recordset1") == false &&
    stristr($param, "totalRows_Recordset1") == false) {
    array_push($newParams, $param);
    }
    }
    if (
    count($newParams) != 0) {
    $queryString_Recordset1 = "&" . implode("&", $newParams);
    }
    }
    $queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);
    ?>

    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="Body.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <p>&nbsp;</p>
    <form name="form2" method="post" action="">
    <p>
    <select name="select">
    <option value="1">1 Giornata</option>
    <option value="2">2 Giornata</option>
    <option value="3">3 Giornata</option>
    </select>

    <input name="Aggiorna" type="submit" id="Aggiorna" value="Invia">
    <?php
    $colname_Recordset1
    = "0";
    if (isset(
    0)) {
    $colname_Recordset1 = (get_magic_quotes_gpc()) ? 0 : addslashes(0);
    }
    mysql_select_db($database_Mysql, $Mysql);
    $query_Recordset1 = sprintf("SELECT * FROM Formazioni WHERE Giornata = '%s'", $colname_Recordset1);
    $Recordset1 = mysql_query($query_Recordset1, $Mysql) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
    ?>
    </p>
    <p>&nbsp; </p>
    <table width="476" border="1">
    <tr>
    <td width="330">&nbsp;</td>
    <td width="130">&nbsp;</td>
    </tr>
    <tr>
    <td><?php echo $row_Recordset1['Giocatore']; ?></td>
    <td><?php echo $row_Recordset1['Punti']; ?></td>
    </tr>
    </table>
    </form>
    <p>&nbsp; </p>
    <p>&nbsp; </p>
    <form method="post" name="form1" action="<?php echo $editFormAction; ?>">
    <table align="center">
    <tr valign="baseline">
    <td nowrap align="right">Giornata:</td>
    <td><input type="text" name="Giornata" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Squadra:</td>
    <td><input type="text" name="Squadra" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Giocatore:</td>
    <td><input type="text" name="Giocatore" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">Punti:</td>
    <td><input type="text" name="Punti" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="right">&nbsp;</td>
    <td><input type="submit" value="Inserisci record"></td>
    </tr>
    </table>
    <input type="hidden" name="MM_insert" value="form1">
    </form>
    <p>&nbsp;</p>
    </body>
    </html>
    <?php
    mysql_free_result
    ($Recordset1);
    ?>


    Vorrei visualizzare solo i recordset di una giornata specifica, ma quando scelgo la giornata nel menu e do la conferma con il pulsante, mi viene ricaricata la stessa pagina con gli stessi dati.


    FunCool: Quando scrivi del codice, inseriscilo tra i tag appositi. Modifico il titolo.
    Ultima modifica di funcool : 04-10-2006 alle ore 17.08.59

  4. #4
    Guest

    Predefinito

    premetto che non ho letto tutto il codice :))) però posso dirti che questo codice non dovrebbe funzionare.. è vecchio come il cucco! $http_post_vars veniva usata nella versione < 4.1.0 .
    Dovresti cambiare script. Se vuoi usare questo io non posso aiutarti sorry :(((

  5. #5
    Guest

    Predefinito Codice

    Capisco e ti ringrazio, comunque non avresti un esempio fatto con la versione che usi tu da cui poter prendere spunto ?

  6. #6
    Guest

    Predefinito

    allora: versione che uso io? di cosa?
    Hai forse le idee confuse :))))

    allora il db ti serve per memorizzare dei dati in forma permanente e ottimizzata. Per ottenere dei dati devi utilizzare il linguaggio SQL.
    Per utilizzare i dati mandati dall'utente devi utilizzare i FORM

    per selezionare dei dati da una tabella che si chiama utenti (esempio) devi fare
    select * from utenti

    se vuoi selezionare gli utenti che hanno una età maggiore di 16 anni (ipotizzando che esista una colonna con il campo eta allora devi fare:

    select * from utenti where eta > 16

    ecc. ecc. ecc. ma dipende dallo script che usi dalle tabelle ecc.

    Quindi: dimentica quello che hai e dicci quello che vuoi: facciamo prima a farlo :)))))

    ciaooo

  7. #7
    Guest

    Predefinito

    Effettivamente la mia domanda non è molto chiara.
    Mi spiego meglio :
    Sto facendo un sito per il fantacalcio ( che novità !!! ) e vorrei gestire i dati della nostra fantalega.
    Ho già attivato il database e riesco ad inserire i dati, più precisamente le formazioni delle squadre, di ogni giornata.
    Riesco anche a visualizzare i dati precedentemente inseriti, ma tutti insieme, mentre invece vorrei poter scegliere la squadra e la giornata da due menù a scomparsa.
    Spero di essere stato chiaro.
    Grazie per la pazienza

  8. #8
    Guest

    Predefinito

    perfetto. adesso manca solamente come è fatta la tabella e che dati vuoi far vedere e ti diamo lo script :))))

  9. #9
    Guest

    Predefinito

    LA tabella si chiama Formazioni e contiene i campi GIORNATA SQUADRA GIOCATORE PUNTI.
    Io vorrei vedere i campi GIOCATORE e PUNTI.
    Comunque questa è solo una piccola prova per capire il funzionamento così poi dovrei riuscire al mio scopo.

  10. #10
    Guest

    Predefinito

    <?php
    $sql = "select * from formazione";
    $result = mysql_query( $sql ) or die("errore in selezione formazione: " . mysql_error());

    while( $row = mysql_fetch_array( $result ))
    echo "Giocatore:" . $row['giocatore'] . " Punti: " . $row['punti'] . "<br />";

    ?>


    così

  11. #11
    Guest

    Predefinito

    Scusa, ho seguito il tuo consiglio, ma non riesco a veder i record da me inseriti.
    Mi spiego :
    Ho provato con lo script che mi hai dato, la connessione è tutta ok, mi viene scritto per 19 volte ( il numero di record presenti nel db ) Giocatore Punti , ma non viene scritto il valore del record.
    Dove potrei sbagliare ?

  12. #12
    Guest

    Arrow

    Il fatto che venga scritto tante volte quanti sono le righe della tabella i fa pensare che tu abbia fatto un errore nell'inserimento dei dati nel database, inserendo solo campi vuoti. Hai controllato che la tabella non contenga solo righe vuote? Dubito che l'erroe sia nella query. Al limite al posto di
    echo "Giocatore:" . $row['giocatore'] . " Punti: " . $row['punti'] . "<br />";
    scrivi
    echo "Giocatore:" . $row['GIOCATORE'] . " Punti: " . $row['PUNTI'] . "<br />";
    Se non funziona ancora controlla che i campi della tabella si chiamino esattamente così.

    Comunque, se ho capito bene, a te servirebbe un modo per far sì che un utente possa vedere i dati delle formazioni solo per la squadra che gli interessa. Allora in una pagina, per esempio, squadra.html puoi scrivere:
    Codice HTML:
    <form action="formazioni.php" method="post">
    <select name="squadra">
    <option value="inter">Inter</option>
    <option value="milan">Milan</option>
    <option value="juventus">Juventus</option>
    </select>
    <input type="submit" name="azione" value="Vedi">
    </form>
    In un altra pagina, che sarà formazioni.php, scrivi:
    Codice PHP:
    <?
    if($_POST['azione'] != "Vedi"){
    die (
    '<meta http-equiv="refresh" content="0;URL=squadra.html">');
    }

    //Connessione al database
    //(Inserisci i valori per la connessione)

    $sql = "SELECT * FROM formazioni WHERE squadra=$_POST[squadra]";
    $result = mysql_query( $sql ) or die("errore in selezione formazione: " . mysql_error());

    while(
    $row = mysql_fetch_array( $result ))
    echo
    "Giocatore:" . $row['giocatore'] . " Punti: " . $row['punti'] . "<br />";

    ?>
    Ecco. Che ne dci?

  13. #13
    Guest

    Predefinito

    Tu non ci crederai, ma il mio problema persiste !

    Penso ormai di averle provate tutte, ma non riesco a visualizzare i record.
    Ho già controllato sia il nome dei campi che il loro contenuto.
    Addirittura nell'ultimo script che mi hai inviato nella pagina formazioni non riesco ad aprire la tabella.
    Sono nuovo del linguaggio PHP e anche un pò cocciuto, ma adesso penso di esagerare visto che grazie ai tuoi aiuti qualche cosa l'ho già capito

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •