Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Update con clausola where da array

    Ciao a tutti,
    è la prima volta che scrivo sul forum.
    Non sono molto esperta di mysql e php e sto cercando di mettere su una pagina con prenotazione online di biglietti.
    Il problema è che, una volta che l'utente ha prenotato i biglietti, lo stato su db viene passato da 0 (non prenotato) a 1 (prenotato). Se i biglietti sono più di uno vengono inseriti in un array i cui valori, attraverso un foreach, passo ad una variabile che diventa la clausola where dell'update del db.
    purtroppo mi aggiorna solo il primo valore dell'array e non gli altri.
    Qualcuno ha idea di come posso risolvere questo problema?
    il codice è il seguente:

    if ($array){
    foreach ($array as $ap){
    mysql_query("

    UPDATE tabella
    SET `campo` ="1"
    WHERE `numero` = "$ap"

    "); }
    }

  2. #2

    Re: Update con clausola where da array

    Originariamente inviato da sasoski
    Codice PHP:
    if ($array){
         foreach (
    $array as $ap){
            
    mysql_query("
            
            UPDATE tabella
              SET `campo` ="
    1
            WHERE `numero` = "
    $ap

            "
    );                            }
                } 
    A prescindere da qualunque altra ipotesi:

    Per definire le stringhe da immettere o valutare nella query devi utilizzare l'apice singola oppure mettere il carattere di escape prima delle doppie apici che si trovano all'interno della stringa. Abilita la stampa degli errori perche' sicuramente ne ricevi.

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

  3. #3
    si piero,
    in realtà nel codice è corretto, avevo tolto gli escape ma il codice ooriginale è questo:

    if ($array){
    foreach ($array as $ap){
    mysql_query("

    UPDATE tabella
    SET `campo` =\"1\"
    WHERE `numero` = \"$ap\"

    "); }
    }

  4. #4
    stampa la query invece di eseguirla e vedi cosa ti rende la scansione dell'array con il foreach.

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

  5. #5
    fai dei test no, tanto per capire cosa nn va del tuo codice.
    invece di fare la query al db, fattela stampare a video.
    Codice PHP:
    if ($array){
    foreach (
    $array as $ap)
    echo 
    "UPDATE tabella SET `campo` =\"1\" WHERE `numero` = \"$ap\""); 


  6. #6
    allora....
    il test che avevo gia fatto è stampare il risultato del foreach ed è corretto, vengono presi i valori variabile corretti dall'array. La query funziona ma aggiorna solamente il primo valore (cioè il primo valore dell'array) che assume la variabile $ap e non tutti gli altri.
    sono 2 giorni che sbatto la testa su questa cosa e non riesco a venirne a capo

    Me tapina!!!!!

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Codice PHP:
    if ($array){
    foreach (
    $array as $ap){
    mysql_query("

    UPDATE tabella
    SET `campo` ='1'
    WHERE `numero` = '
    $ap'

    "
    ) or die(mysql_error()); }

    Sei sicura che ci siano solo numeri in quell'array?

  8. #8
    il contenuto dell'array stampato è questo:

    ( [0] => A1 [1] => A2 )
    ed il contenuto della variabile $ap diventa
    A1
    A2
    e sono esattamente i numeri dei posti da prenotare.
    Infatti, la query funziona, ma aggiorna solo il primo numero (A1)

  9. #9
    Originariamente inviato da sasoski
    il contenuto dell'array stampato è questo:

    ( [0] => A1 [1] => A2 )
    ed il contenuto della variabile $ap diventa
    A1
    A2
    e sono esattamente i numeri dei posti da prenotare.
    Infatti, la query funziona, ma aggiorna solo il primo numero (A1)
    hai notato l'ultima riga del suggerimento di script postato di Luca200???

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

  10. #10
    non capisco cosa vuol dire ho postato l'esatto contenuto dell'array

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.