Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179

    Modificare ordine elementi

    Salve ho una tabella che presenta come colonne l'id, poi un campo chiamato sezionemenu, ed infine il campo ordine. La tabella si chiama menusezioni.
    In pratica vorrei fare che in base al valore contenuto nel campo "ordine" vengono elecanti gli elementi. L'utente quindi deve avere la possibilità di modificare l'ordine, avevo pensato a questo codice per quanto riguarda la prima pagina:

    Codice PHP:
    <?
    include("../config.php");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.php");
    $query "SELECT count(*) as tot FROM menusezioni";
    $result1 mysql_query($query$db);
    $row mysql_fetch_array($result1);
    $tot $row[tot];
    $query "SELECT id, sezionemenu, ordine FROM menusezioni LIMIT 0, $tot";
    $result mysql_query($query$db);
    echo 
    "<form action=\"modificaordinesezioniconferma.php\" method=\"post\">";
    while (
    $row mysql_fetch_array($result)) {
    echo 
    "<input type=\"text\" name=\"ordine\" value=\"$row[ordine]\" size=\"7\">".$row[sezionemenu]."
    "
    ;
    }
    echo 
    "<input type=\"submit\" value=\"Invia\"></form>";
    mysql_close($db);
    ?>
    Ora nella seconda pagina ho problemi perchè non so come analizzare tutte le informazioni che arrivano..sapete aiutarmi?
    Mimmo

  2. #2
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    up
    Mimmo

  3. #3
    Intanto una domanda:
    perchè conti le righe che estrarrai e poi limiti la query a quel numero di righe?? Mi sembra assurdo, puoi trasformare il codice così:

    Codice PHP:
    include("../config.php"); 
    $db mysql_connect($db_host$db_user$db_password); 
    if (
    $db == FALSE
    die (
    "Errore nella connessione. Verificare i parametri nel file config.php"); 
    mysql_select_db($db_name$db
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.php"); 
    $query "SELECT id, sezionemenu, ordine FROM menusezioni"
    $result mysql_query($query$db); 
    echo 
    "<form action=\"modificaordinesezioniconferma.php\" method=\"post\">"
    while (
    $row mysql_fetch_array($result)) { 
    echo 
    "<input type=\"text\" name=\"ordine\" value=\"$row[ordine]\" size=\"7\">".$row[sezionemenu]."
    "


    echo 
    "
    <input type=\"hidden\" name=\"conferma_mod\">
    <input type=\"submit\" value=\"Invia\">
    </form>
    "

    mysql_close($db); 
    Poi mi sembra sbagliata la logica, e se poi vengono inseriri tutti 1 che ordine dai?
    Allora nella seconda pagina prima di tutto verifichi che non ci siano valori uguali altrimenti rimandi alla pagina con un messaggio di notifica.

    Nella secondoa pagina fai una cosa di questo tipo:

    Codice PHP:
    if(isset($_POST['conferma_mod'])){
    //PRENDO I DATI (BISOGNEREBBE ANCHE CONTROLLARLI)
    // FACCIO UN UPDATE SUL SERVER
    } else{
    header("Location: rimando indietro");


  4. #4
    io vedo che nell'ultimo ciclo while chiami ORDINE tutti i textbox; sarebbe meglio chiamarli diversamente, tipo così

    Codice PHP:
    $result mysql_query($query$db); 
    $rows mysql_num_rows($result);
    echo 
    "<form action=\"modificaOrdineSezioniConferma.php?records=$rows\" method=\"post\">";
    $i=1;
    while (
    $row mysql_fetch_array($result)) {
    echo 
    "<input type=\"text\" name=\"ordine$i\" value=\"$row[ordine]\" size=\"7\">".$row[sezionemenu]."
    "
    ;
    $i++;
    }
    echo 
    "<input type=\"submit\" value=\"Invia\"></form>";
    mysql_close($db); 
    come vedi ho aggiunto all'action del form un valore che rappresenta il numero di righe estratte. (piccola nota: per chiarire meglio i nomi delle variabili e delle funzioni non scriverle tutte ion minuscolo, ma usa la notazione camel: prima lettera della prima parola minuscola, prima lettera delle parole suiccessive in maiuscolo).

    quando poi passi i dati a modificaOrdineSezioniConferma.php puoi fare

    Codice PHP:
    $rows $_REQUEST['records'];
    for (
    $i=0$i<count($rows); $i++) {
       
    $x++;
       echo 
    "il campo ordine$x contiene '".$_POST['ordine'.$x];


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.