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?
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?
Allora, se ho capito bene fai questo:
A questo punto se hai un form puoi mettere un campo hidden e passargli il valore id: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'];
e ti troverai $_POST['id'] col valore.Codice PHP:
<form action="pagina.php" method="post">
<input type="hidden" name="id" value="<?= $id ?>">
<input type="submit" value="invio">
</form>
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>
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:
e visualizzo la lista delle squadre:codice:$query = "SELECT id, squadra, categoria, datastagione, punteggio FROM stagione WHERE datastagione LIKE '$datastagione' AND categoria LIKE '$categoria'";
dovrebbe così passarmi punteggio$i nella pagina di update dove ho messo: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> "; }
ora il punto è... come faccio a passare alla pagina il valore ID di ogni riga che prendo dalla tabella stagione?codice:for ($i=1; $i<=$righe; $i++) { $punteggio = '$punteggio$i'; //inserimento nel DB $query = "UPDATE stagione SET punteggio=$punteggio WHERE id='$id'"; }
è giusto il metodo che uso per passare il punteggio?
Quando esegui il cilco metti 2 array con tutti gli id e punteggi della tabella.
In $array_id hai tutti i tuoi id dei record.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_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:
Nella pagina di update ti ritroverai i due dati $_SESSION.Codice PHP:
$_SESSION['id'] = $array_id;
$_SESSION['punteggi'] = $array_punteggi;
hmmm mi da un errore sul foreach...
Warning: Invalid argument supplied for foreach()
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."'";
}
mi da ancora errore al foreach...
uff sto impazzendo
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());
}
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