Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: strano problema

  1. #1
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    strano problema

    estraggo dal DB il nome del piatto, il prezzo e con una checkbox posso decidere quale piatto scelgo, naturalmente posso scegliere piu di un piatto, fino qui tutto ok.
    Il problema e' che (in questo caso ho 4 piatti) se seleziono tutti i piatti, il prezzo viene inserito correttamente per ogni piatto, ma se per esempio seleziono solo 2 piatti il prezzo non e' il corretto, mi inserisce per tutti e due i piatti il prezzo del primo piatto!
    Codice PHP:
    <?php
    require("connessione.php");
    if (!isset(
    $_POST['do_insert']))
    {
        
    $sql "SELECT * from tbl_menu_2 where tipo = '1' and in_menu = 'Y'";
        
    $result mysql_db_query($nome_db$sql$db) or die(mysql_error());
        
    $table "<table border=\"1\">\n";
        
    $i 0;
        
    $piatto_id = array();
        
    $prezzo_id = array();
        
    $table .= "<form action=\"\" method=\"POST\">";
        while (
    $row=mysql_fetch_array($result))
        {
            
    $piatto_id[$i] = $row['piatto'];
            
    $prezzo_id[$i] = $row['prezzo'];
            
    $table .= "<tr>\n";
            
    $table .= "<td>\n" $piatto_id[$i] . "<input name=\"piatto[]\" type=\"checkbox\" value=\"" $piatto_id[$i] . "\"></td>\n";
            
    $table .= "<td>\n";    
            
    $table .= "".$prezzo_id[$i]."";
            
    $table .= "</td>\n";
            
    $table .= "<tr>\n";
            
    $table .= "<td>\n<input type=\"hidden\" name=\"prezzo[]\" value=\"".$prezzo_id[$i]."\"></td>\n";
            
    $table .= "</tr><tr><td>\n";
            
    $i++;
        }
        
    $table .= "<input name=\"do_insert\" type=\"submit\" value=\"inserisci ordine\"></form>\n";
        
    $table .= "</td></tr>\n";    
        
    $table .= "</table>\n";
        echo 
    $table;
    }
    else{
        
    $sel_piatto $_POST['piatto'];
        
    $sel_prezzo $_POST['prezzo'];            
        for(
    $i=0;$i<sizeOf($sel_piatto);$i++)
        {    
            
    $sql "INSERT into tbl_ordine SET piatto='" .$sel_piatto[$i] ."', prezzo='".$sel_prezzo[$i]."'";
            
    $result mysql_db_query($nome_db$sql$db) or die(mysql_error());
        }
    }    
    ?>
    Chi mi da una mano?
    Grazie!
    ¿Hasta la pasta?

  2. #2
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    UP
    ¿Hasta la pasta?

  3. #3
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    ci stiamo lavorando.
    argomento poco trattato.
    ¿Hasta la pasta?

  4. #4
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    again..
    UP
    ¿Hasta la pasta?

  5. #5
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    niente, non ne vengo fuori!
    up
    ¿Hasta la pasta?

  6. #6
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    prova così:
    Codice PHP:
    <?php
    require("connessione.php");
    if (!isset(
    $_POST['do_insert']))
    {
        
    $sql "SELECT * from tbl_menu_2 where tipo = '1' and in_menu = 'Y'";
        
    $result mysql_db_query($nome_db$sql$db) or die(mysql_error());
        
    $table "<table border=\"1\">\n";
        
    $i 0;
        
    $piatto_id = array();
        
    $prezzo_id = array();
       
        while (
    $row=mysql_fetch_array($result))
        {
     
    $table .= "<form action=\"\" method=\"POST\">";
            
    $piatto_id[$i] = $row['piatto'];
            
    $prezzo_id[$i] = $row['prezzo'];
            
    $table .= "<tr>\n";
            
    $table .= "<td>\n" $piatto_id[$i] . "<input name=\"piatto[]\" type=\"checkbox\" value=\"" $piatto_id[$i] . "\"></td>\n";
            
    $table .= "<td>\n";    
            
    $table .= "".$prezzo_id[$i]."";
            
    $table .= "</td>\n";
            
    $table .= "<tr>\n";
            
    $table .= "<td>\n<input type=\"hidden\" name=\"prezzo[]\" value=\"".$prezzo_id[$i]."\"></td>\n";
            
    $table .= "</tr><tr><td>\n";
     
    $table .= "<input name=\"do_insert\" type=\"submit\" value=\"inserisci ordine\"></form>\n";
            
    $i++;
        }
       
        
    $table .= "</td></tr>\n";    
        
    $table .= "</table>\n";
        echo 
    $table;
    }
    else{
        
    $sel_piatto $_POST['piatto'];
        
    $sel_prezzo $_POST['prezzo'];            
        for(
    $i=0;$i<sizeOf($sel_piatto);$i++)
        {    
            
    $sql "INSERT into tbl_ordine SET piatto='" .$sel_piatto[$i] ."', prezzo='".$sel_prezzo[$i]."'";
            
    $result mysql_db_query($nome_db$sql$db) or die(mysql_error());
        }
    }    
    ?>

  7. #7
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    prima di tutto grazie per la tua risposta!`e' un po che ci sto sbattendo la testa.
    Ho appena provato il tuo codice, il problema e`che per ogni piatto ora ho un tasto "inserisci ordine" e non va bene cosi.
    Ho provato a metterlo fuori dal ciclo while, ma non inserisce il giusto prezzo del piatto.
    ¿Hasta la pasta?

  8. #8
    formalmente il codice non e' errato, ma usi un comando deprecato, e non da poco tempo, per l'inserimento:

    mysql_db_query()

    prova ad usare dopo la connessione:

    mysql_select_db

    e poi mysql_query per eseguire le varie query. Poi per capire cosa ricevi stampa $_POST.

    Codice PHP:
    .........
    else{

        echo 
    "<pre>";
        
    print_r($_POST);

        
    $sel_piatto $_POST['piatto'];
        
    $sel_prezzo $_POST['prezzo'];            
        for(
    $i=0;$i<sizeOf($sel_piatto);$i++) 
        {
            
    $sql "INSERT into tbl_ordine SET piatto='" .$sel_piatto[$i] ."', prezzo = '".$sel_prezzo[$i]. "'";

            echo 
    $sql ."
    "
    ;
        }

    questo ti servira' per renderti conto di cosa effettivamente ricevi e di cosa vai a mettere nel db

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    credo di non aver capito bene.
    "prova ad usare dopo la connessione:
    mysql_select_db"
    ¿Hasta la pasta?

  10. #10
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    onoratissimo per il tuo consiglio. Grazie.
    ora ho:
    Codice PHP:
    Array
    (
        [
    piatto] => Array
            (
                [
    0] => insalata caprese del giorno
                
    [1] => ostriche pepe e limone (2pz)
            )

        [
    prezzo] => Array
            (
                [
    0] => 7
                
    [1] => 7
                
    [2] => 11
                
    [3] => 25
            
    )

        [
    do_insert] => inserisci ordine
    )

    Warning:  Wrong parameter count for mysql_query() in c:\archivos de programa\easyphp\www\lafattoria\prenota.php on line 41 
    dove:
    insalata [0] prezzo = 7 corretto
    ostriche [1] prezzo = 7 non corretto dovrebbe essere Array [prezzo][3] =>25


    grazie ancora.


    ¿Hasta la pasta?

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.