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

Discussione: Update da array

  1. #1

    Update da array

    Ragazzi a tutti..

    devo aggiornare lo stato dei prodotti inseriti nel carrello da standby a confermato.

    Voglio passare tutti gli id dei prodotti nel carrello tramite array per poi modificare lo stato.
    Ecco lo script test:

    <?
    include("privata/db.php");
    $array = array();
    $select = "SELECT id FROM carrello ";
    $results = mysql_query($select);
    $i = 0;
    while($query = mysql_fetch_array($results)){
    $array[] = $query;
    }

    print_r($array);

    foreach ($array as $nome=>$value) {
    mysql_query("UPDATE carrello SET stato='confermato' WHERE id='$value'") or die();
    }

    ?>
    Questo è quello che mi stampa:
    Array (
    [0] => Array ( [0] => 4 [id] => 4 )
    [1] => Array ( [0] => 6 [id] => 6 )
    [2] => Array ( [0] => 7 [id] => 7 )
    [3] => Array ( [0] => 8 [id] => 8 )
    [4] => Array ( [0] => 9 [id] => 9 )
    [5] => Array ( [0] => 10 [id] => 10 )
    )

    ma non riesco a modificare lo stato..
    Cosa sbaglio nel Update?
    Grazie..
    Vacanze in Sardegna?? http://www.albergoviadelmare.it

  2. #2

    Re: Update da array

    Originariamente inviato da lucacasu

    while($query = mysql_fetch_array($results)){

    Cosa sbaglio nel Update?
    Grazie..
    Devi usare mysql_fetch_assoc() perche' mysql_fetch_array() rende il result set due volte per tupla. Una con indice numerico e l'altra con indice associativo come puoi ben vedere.

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

  3. #3
    Array (
    [0] => Array ( [id] => 4 )
    [1] => Array ( [id] => 6 )
    [2] => Array ( [id] => 7 )
    [3] => Array ( [id] => 8 )
    [4] => Array ( [id] => 9 )
    [5] => Array ( [id] => 10 )
    )

    Ok modificato.. ma con la query:
    foreach ($array as $value) {
    mysql_query("UPDATE carrello SET stato='confermato' WHERE id='$value'") or die();
    }

    comunque non mi cambia lo stato..
    Vacanze in Sardegna?? http://www.albergoviadelmare.it

  4. #4
    $array = array();

    $array[] = $query;

    $query ti rende gia' di suo un array. Se tu dichiari prima $array = array() ti costruira' un array multidimensionale.

    elimina la prima di queste due righe.

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

  5. #5
    $select = "SELECT id FROM carrello ";
    $results = mysql_query($select);
    $i = 0;
    while($query = mysql_fetch_assoc($results)){
    $array[] = $query;
    }

    print_r($array);


    foreach ($array as $value) {
    mysql_query("UPDATE carrello SET stato='confermato' WHERE id='$value'") or die();
    }

    continua a non modificarmi nulla.. UFF!!
    Vacanze in Sardegna?? http://www.albergoviadelmare.it

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Il prob non sta nella fetch array, che e' vero che restitusce le righe doppie x ogni tupla incontrata. Ma se le scorri con il classico while non hai problemi infatti nella stampa nnmi pare di vedere valori duplicati.

    Prova ad inserire questo

    Codice PHP:

    mysql_query
    ("UPDATE carrello SET stato='confermato' WHERE id='$value'") or die( "Query error : ".mysql_error() ); 

  7. #7
    nulla..
    test
    Vacanze in Sardegna?? http://www.albergoviadelmare.it

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Se la funzione non stampa nulla a video vuol dire che il ciclo e' corretto prova ad inserire delle stringhe di debug


    Codice PHP:

    include("privata/db.php");
    $array = array();
    $select "SELECT id FROM carrello ";
    $results mysql_query($select);
    $i 0;
    while(
    $query mysql_fetch_array($results)){
        
    $array[] = $query;
        echo 
    "ADDED : " ;
        
    var_dump($query) ;
        echo 
    "
    ;
    }

    print_r($array);

    foreach (
    $array as $nome=>$value) {

    $q "UPDATE carrello SET stato='confermato' WHERE id='".$value."'" ;

    mysql_query($q) or die("errore:".mysql_error() );

    echo 
    "Query : ".$q."
    Righe aggiornate :"
    .mysql_affected_rows($ris)."
    ;


    E stampa cosa succede.

  9. #9
    $array[] = $query['id'];

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

  10. #10
    .....finalmente lo stato è cambiato!! Grazie mille a Virus_101 & piero.mac!!

    Birra pagata al Solanas Cafè !
    Vacanze in Sardegna?? http://www.albergoviadelmare.it

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.