Visualizzazione dei risultati da 1 a 8 su 8

Discussione: select e array

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    30

    select e array

    Salve ho un problemino con l'array e l'aggiornamento tabella dei dati selezionati.

    Dopo aver eseguito una query tipo select ho ad esempio come risultato 3 record:

    $id, $nome, $professione.


    1 luca, imprenditore
    2 marco, giornalista
    3 maria, chirurgo


    come faccio a creare un array che contenga solo l'id degli iscritti?

    risolto questo potrò successivamente includere in un form l'array in questione in un campo nascosto (hidden) e postare il tutto ad uno script php (aggiorna.php) e fin quì dovrebbe filare liscio ma poi mi si ripropone un altro problema come faccio ad aggiornare solo i record specificati nell'array forse con un ciclo for ? qualcuno mi può aiutare?

    Grazie infinite
    Red Hat 7.3 i686 -

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    30
    Sono riuscito a risolvere il primo quesito:

    l'array l'ho costruita così.... (scrivo solo l'essenziale):

    while($awb_data = mysql_fetch_array($awb)) {
    $ids[] = $awb_data[id];
    }

    E fin quì tutto ok , ma adesso dovrei inviare l'array ad uno script:

    modifica.php dove aggiornare solo i record con l'id contenute nell'array ($ids). avete qualche suggerimento ? grazie , io intanto provo con un implode e poi boh! cmq posterò il tutto appena risolvo.

    Grazie ancora
    Red Hat 7.3 i686 -

  3. #3
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    invia il tuo arrai senza indice via post o get es.: $array nel campo hidden. poi lo riprendi cosi':

    foreach( $_POST['campo_di _array'] as $dato) {
    qui fai tutte le operazioni che vuoi, essendo un ciclo dell'array le ripetera' per ogni valore di array dal primo all'ultimo
    }
    PS a volte da problemi il foreach se metti un $_post interno
    Se nn va fai prima del ciclo: $variabile = $_POST['campo_di _array']; e poi il foreach:

    foreach( $variabile as $dato) {

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    30
    Prima di tutto grazie per la risposta ma non capisco quella variabile $dato cosa sia o meglio cosa contiene? cmq provo con il foreach.

    e poi posto.

    Grazie.
    Red Hat 7.3 i686 -

  5. #5
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    E' la sintassi del foreach che e' fatta cosi'.
    Dai a dato il valore dell'array.Vedilo come $array = $dato.
    $dato e' un nome che ho inventato io, puoi' chiamarlo come vuoi.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    30
    mi da errore


    Warning: Invalid argument supplied for foreach() in c:\programmi\......................\aggiorna.php on line 47

    alla linea 47 :



    foreach($_POST['awbs'] as $dato) {

    $updateSQL = "UPDATE prodotti SET fattura =\"$n_fattura\" WHERE prodotto_id = \"$dato\"";

    mysql_select_db($database_m, $m);
    $Result2 = mysql_query($updateSQL, $m) or die(mysql_error());

    }


    :master:
    Red Hat 7.3 i686 -

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    30
    Credo che il problema sia da attribuirsi al fatto che l'array
    (awbs[]) inserita nel campo hidden del form:

    <input type="hidden" name="awbs" value="<? echo $awbs;?>">

    sia vuota o meglio stampa semplicemente Array senza tenere conto dei valori.

    Qualcuno sà come mantenere l'array con i suoi valori passandolo da uno script ad un altro?

    grazie ancora
    Red Hat 7.3 i686 -

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    30


    Finalmente ho risolto così:
    nel form:


    <? $a = implode("-",$awbs); ?>
    $awbs è l'array.


    <input type="hidden" name="awbs" value="<? echo $a;?>">




    nello script aggiorna.php l'ho inserita così:

    $arrwbs = explode("-",$awbs);

    foreach($arrwbs as $dato) {
    $updateSQL = "UPDATE prodotto SET fattura =\"$n_fattura\" WHERE prodotto_id = \"$dato\"";

    mysql_select_db($database_m, $m);
    $Result2 = mysql_query($updateSQL, $m) or die(mysql_error());
    }

    così funge perfettamente!



    Grazie per gli spunti
    Red Hat 7.3 i686 -

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.