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

    [php-mysql] passare variabili

    faccio una query da una tabella dove prelevo alcune righe da modificare.

    voglio inviare il numero id delle righe che ho selezionato nella pagina in cui faccio la query di update.

    come si fa?

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Allora, se ho capito bene fai questo:
    Codice PHP:
    $select "SELECT * FROM tabella WHERE campo ='....'";
    $q mysql_fetch_array($select)or die(mysql_error());
    $result mysql_fetch_array($q);

    $id$result['cmapo_id']; 
    A questo punto se hai un form puoi mettere un campo hidden e passargli il valore id:
    Codice PHP:
    <form action="pagina.php" method="post">
    <input type="hidden" name="id" value="<?=  $id ?>">
    <input type="submit" value="invio">
    </form>
    e ti troverai $_POST['id'] col valore.
    Se sono piu' record:
    Codice PHP:
    $select = "SELECT * FROM tabella WHERE campo ='....'";
    $q = mysql_fetch_array($select)or die(mysql_error());
    $array_id = array();
    while($result = mysql_fetch_array($q)){
    $array_id[] =  $result['cmapo_id'];
    }
    <form action="pagina.php" method="post">
    <input type="hidden" name="id" value="<?=  $array_id ?>">
    <input type="submit" value="invio">
    </form>

  3. #3
    hmm... forse nn mi sono spiegato bene.
    allora: devo gestire la classifica con delle squadre di calcio e mi serve una pagina che mi modifichi contemporaneamente il punteggio delle squadre di una determinata stagione.

    ho fatto la query:
    codice:
    $query = "SELECT id, squadra, categoria, datastagione, punteggio FROM stagione WHERE datastagione LIKE '$datastagione' AND categoria LIKE '$categoria'";
    e visualizzo la lista delle squadre:
    codice:
    while ($row = mysql_fetch_array($result))
    {
    $i++;
      echo"<tr>
        <td align=\"right\">$row[squadra]</td>
        <td><input type=text size=2 name=punteggio$i value=\"$row[punteggio]\">
    	</td>
      </tr> ";
    }
    dovrebbe così passarmi punteggio$i nella pagina di update dove ho messo:

    codice:
    for ($i=1; $i<=$righe; $i++)
    {
    $punteggio = '$punteggio$i';
    
    //inserimento nel DB
    $query = "UPDATE stagione SET punteggio=$punteggio WHERE id='$id'";
    }
    ora il punto è... come faccio a passare alla pagina il valore ID di ogni riga che prendo dalla tabella stagione?
    è giusto il metodo che uso per passare il punteggio?

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Quando esegui il cilco metti 2 array con tutti gli id e punteggi della tabella.
    Codice PHP:
    $arrai_id = array();
    $arrai_punteggi = array();
    while (
    $row mysql_fetch_array($result))
    {
    $i++;
    $arrai_id[] = $row['id'];
    $arrai_punteggi[] = $row['punteggio'];
      echo
    "<tr>
        <td align=\"right\">
    $row[squadra]</td>
        <td><input type=text size=2 name=punteggio
    $i value=\"$row[punteggio]\">
        </td>
      </tr> "
    ;

    In $array_id hai tutti i tuoi id dei record.
    In $array_punteggi hai tutti i tuoi punteggi con lo stesso ordine di array_id.

    Nella pagina di update potresti fare una cosa tipo:
    [php]
    $i=0;
    foreach ($array_id as $id)
    {
    $i++;
    //inserimento nel DB
    $query = "UPDATE stagione SET punteggio=$array_punteggio[$i] WHERE id='$id'";
    }
    [php]

    Per passare i 2 array alla pagina di update vedi tu. Potresti metterli in sessione per comodita'. session_start() in testa a entrambe le pagine e in quella di estrazione:
    Codice PHP:
    $_SESSION['id'] = $array_id;
    $_SESSION['punteggi'] = $array_punteggi
    Nella pagina di update ti ritroverai i due dati $_SESSION.

  5. #5
    hmmm mi da un errore sul foreach...

    Warning: Invalid argument supplied for foreach()

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Si ho sbagliato , metti nel foreach $_SESSION['id']
    PS
    Se nn prende $_SESSION nel foreach fai prima $array_id = $_SESSION['id']; (anche per punteggio). Ho avuto un prob di questo tipo una volta.
    Codice PHP:
    $i=0;
    foreach (
    $_SESSION['id'] as $id)
    {
    $i++;
    //inserimento nel DB
    $query "UPDATE stagione SET punteggio='".$_SESSION['punteggio'][$i]."' WHERE id='".$id."'";


  7. #7
    mi da ancora errore al foreach...
    uff sto impazzendo

  8. #8
    up^ please help

  9. #9
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Prova a fare nella pagina di update un print_r($_SESSSION['id']); e vedi se hai la variabile.
    Se esiste non dovresti avere problemi
    Se preferisci puoi provare cosi':
    Codice PHP:
    for($i=0;$i<=count($_SESSION['id'];$i++)){
    $update "UPDATE stagione SET punteggio='".$_SESSION['punteggio'][$i]."' WHERE id='".$_SESSION['id'][$i]."'";
    $q mysql_fetch_array(update) or die(mysql_error());


  10. #10
    su questa riga:
    $q = mysql_fetch_array(update) or die(mysql_error());

    mi da questo errore...

    mysql_fetch_array(): supplied argument is not a valid MySQL result resource

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.