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

Discussione: problema foreach

  1. #1

    problema foreach

    ciao ...
    ho questo codice che mi estrapola da una variabile globale, le singole variabili che andrò ad inserire nel record di un Db...

    foreach($_POST['articoloselezionato'] AS $record)
    {
    //insert serial number Db
    $insert = "insert into articoli_magazzino
    values ('','','','','','','','$record','')";
    mysql_query ($insert) or die (mysql_error());
    }


    stranamente funziona tutto... cioè riesco ad inserire i valori di $record nella tbl...

    però mi appare in output questo errore :


    Warning: Invalid argument supplied for foreach() in c:\programmi\apache group\apache\htdocs\es.php on line 49


    ??? che può essere???

    grazie e ciao

  2. #2
    stampa l'array $_POST e vedi che contiene.

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

    Stampalo prima del foreach.


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

  3. #3
    ok mi esce:

    Array ( [0] => 23434534534 [1] => ewe )

  4. #4
    [supersaibal]Originariamente inviato da ferrate
    ok mi esce:

    Array ( [0] => 23434534534 [1] => ewe ) [/supersaibal]
    come vedi NON e' un array con indice associativo $_POST['articoloselezionato']

    controlla il form...

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

  5. #5
    [supersaibal]Originariamente inviato da piero.mac
    come vedi NON e' un array con indice associativo $_POST['articoloselezionato']

    controlla il form... [/supersaibal]

    echo "<input type=\"checkbox\" name=\"articoloselezionato[]\" value=\"$serial\">";

    però scusa se non fosse di indice associativo non dovrebbe manco salvarmi i dati nella tabella...
    o sbaglio?

    invece i dati li salva.... è solo che mi viene generato un errore ( vedi sopra ) in output sul foreach...

    addirittura ( se ti può essere utile ) con la variabile $record che estraggo dal foreach riesco a creare una condizione WHERE su una select utilizzando sempre la stessa $record...

  6. #6
    tu dici di fare una cosa del genere

    foreach($_POST['articoloselezionato'] AS $key => $record)

  7. #7

  8. #8
    [supersaibal]Originariamente inviato da ferrate
    tu dici di fare una cosa del genere

    foreach($_POST['articoloselezionato'] AS $key => $record) [/supersaibal]
    se stampi l'array vedi come e' composto e quali sono i dati contenuti.

    Ovvio che in questo modo sopra indicato prendi il contenuto di $_POST['articoloselezionato'] mentre prima prendevi l'indice. Ma l'errore dice che $_POST['articoloselezionato'] non e' un argomento valido.

    stampa "tutto" il $_POST come ti ho detto prima e metti anche echo "<pre>" per avere la formattazione dell'output.

    Quello che non stampa "NON" c'e'.

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

  9. #9
    vi posto il papirazzo :

    <?php

    include ("dbconnect.php");

    //variabile login
    $username = $_GET ['login'];

    $sessione = $_GET ['idsessione'];

    $dettaglio = $_POST ['articoloselezionato'];






    //select CLIENTE
    $query = mysql_query ("select a.id_user,b.nome,a.id_magazzino,a.data from magazzino as a, user as b where sessioni = '$sessione' and a.id_user = b.id_user ") or die (mysql_error());

    while ($row = mysql_fetch_array ($query))
    {
    $cliente = $row ['nome'];
    $iduser = $row ['id_user'];
    $idmagazzino = $row ['id_magazzino'];
    $data = $row ['data'];
    echo "<img src=quadro1.bmp> <font face=arial size=2>$cliente</font>";
    echo "

    ";
    echo "<font face=arial size=1>ARTICOLI SELEZIONATI :</font>";
    echo "

    ";
    }

    //stampami intanto gli array
    for($i=0;$i<count($_POST['articoloselezionato']);$i++){
    echo "<font face=arial size=1>Serial number : {$_POST['articoloselezionato'][$i]}
    "; }



    echo "<form method =\"post\" action=\"es.php?login=$username&idsessione=$sessio ne\" target=\" _blank\">";
    //print_r($_POST['articoloselezionato']);


    foreach($_POST['articoloselezionato'] AS $key => $record)
    {

    //insert serial number Db
    $insert = "insert into articoli_magazzino
    values ('','$iduser','$idmagazzino','','$data','$username ','','$record','$sessione')";
    mysql_query ($insert) or die (mysql_error());



    //select con relativo update dei campi id_articoli e id_dettagli con rispettiva quantita
    $query1 = mysql_query ("select id_articoli,id_dettagli,quantita from dettagli where serialnumber='$record'") or die (mysql_error());
    while ($row = mysql_fetch_array($query1))
    {
    $idarticoli = $row ['id_articoli'];
    $iddettagli = $row ['id_dettagli'];
    $quantita = $row ['quantita'];


    echo $idarticoli;
    echo $iddettagli;
    echo $quantita;
    }
    //update valori della select
    mysql_query ("update articoli_magazzino set quantita = '$quantita',id_articoli ='$idarticoli',id_dettagli='$iddettagli'
    where serialnumber='$record' and sessioni='$sessione'");
    }


    echo"<input type=\"submit\" value=\"Invio\" name=\"Invio\" style=\"font-family: Arial; font-size: 8 pt; font-weight: bold\">";

    ?>

  10. #10
    editato:

    stampa $_POST


    altrimenti non si capisce piu' na mazza...
    codice:
    echo "<pre>";
    print_r($_POST); 
    
    foreach( $_POST['articoloselezionato'] AS $key => $record)

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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.