[PHP] RICHIAMARE TABELLA I CUI VALORI SONO STAMPATI A VIDEO E MODIFICARLI

giacomo9783

Utente Attivo
24 Ago 2016
80
0
6
36
Eè un po' complesso, vi prego leggete!
Ho una tabella (PRENOTAZIONI) dalla quale estraggo quelle comprese tra due date (data2 e data3) e stampo a video il risultato della query, il tutto col seguente codice:
PHP:
$result = mysql_query("SELECT * FROM PRENOTAZIONI WHERE PROSSIMACONSEGNA between '$data2' and '$data3' AND ORDINATA='NO' ORDER BY PROSSIMACONSEGNA ASC")
or die(mysql_error());
 
// visualizza i dati in tabella

echo "<table bgcolor='white' border='1' cellpadding='5' align='center'>";
echo "<tr bgcolor='yellow'><th>COGNOME E NOME</th><th>CONS. PAZ. DAL</th><th>NOTE</th><th>CATEGORIA</th></th><th>ORDINATA</th><th></th></tr>";
 
// loop tra i risultati della query del database, visualizzandoli in tabella
while($row = mysql_fetch_array( $result )) {
 
// emissione del contenuto di ogni riga in una tabella
echo "<tr>";
echo '<td nowrap><b>' . $row['COGNOMENOME'] . '</b></td>';
echo '<td align="center"><b>' . $row['PROSSIMACONSEGNA'] . '</b></td>';
echo '<td><b>' . $row['NOTE'] . '</b></td>';
echo '<td align="center">' . $row['CATEGORIA'] . '</td>';
// echo '<td align="center">' . $row['SCADENZA'] . '</td>';
echo '<td align="center">' . $row['ORDINATA'] . '</td>';


bene, a questo punto dovrei aggiungere la possibilità, magari con un click su un pulsante, di cambiare da No a SI la colonna ORDINATA (della tabella PRENOTAZIONI) delle righe appena selezionate e stampate a video.. il massimo sarebbe inserire accanto ad ogni riga stampata a video una checkbox da spuntare e poi cliccando su un tasto (es "contrassegna come ordinate") faccio eseguire la modifica sulla colonna ORDINATA. Si può fare???
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.038
146
63
PR
www.borgo-italia.it
ciao
potresti fare in questo modo, prelevando l'id della prenotazione (immagino che esista)
PHP:
<?php
//....
echo '<td align="center">';// . $row['ORDINATA'] . '</td>';
if($row['ORDINATA']=="si"){
    echo $row['ORDINATA'];
}else{
    echo '<a href="uppa.php?id='.$row['id'].'">'.$row['ORDINATA'].'</a>';
}
echo '</td>';
//...
?>
nella pagina uppa.php ricevi il $_GET e fai uppare da no a si e ritorni in automatico alla lista o volendo al posto di uppa.php puoi fare il tutto nella stessa pagina dell'elenco
 

giacomo9783

Utente Attivo
24 Ago 2016
80
0
6
36
l'id esiste ed è univoco per ogni prenotazione; no non posso mettere tutto insieme, ho bisogno PRIMA di visualizzare la lista delle righe tirate giù con la query
PHP:
$result = mysql_query("SELECT * FROM PRENOTAZIONI WHERE PROSSIMACONSEGNA between '$data2' and '$data3' AND ORDINATA='NO' ORDER BY PROSSIMACONSEGNA ASC")
or die(mysql_error());
e poi spuntare ciascuna riga mettendo il segno di spunta sulla corrispondente checkbox; premendo poi un apposito tasto dovrei far cambiare da NO a SI la colonna ORDINATA di ciascuna riga precedentemente spuntata.

Complesso, l'avevo detto, e la faccenda si complica dal momento che, non essendo per nulla esperto di php, "vado a braccio"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.038
146
63
PR
www.borgo-italia.it
ciao
intanto non c'entra nulla per vedere la tabella ordinata o meno se fai tutto in una pagina, anche se in funzione di quanto è "corposo" lo script per visualizzare la tabella può essere più semplice farne due
poi un consiglio passa alle nuove funzioni php mysqli_xyz le vecchie mysql_xyz sono deprecate e corri il rischio di dover rifare tutto
poi nel pomeriggio ti posto un esempio
 

giacomo9783

Utente Attivo
24 Ago 2016
80
0
6
36
grazie davvero per la pazienza, mi occorre però eseguire 2 step distinti e separati, e cioè 1) tirar giù le righe come da query 2) modificare da NO a SI la colonna; questo perchè PRIMA di modificare da NO a SI devo controllare che le righe estratte siano giuste. Provvederò al più presto al passaggio alle nuove funzioni, anche se per ora è un sito che utilizzo solo in locale, viene eseguito in un NAS e se non aggiorno nulla non dovrei mai avere problemi di funzioni deprecate. Grazie del consiglio!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.038
146
63
PR
www.borgo-italia.it
ciao
ho fatto prima che nel pomeriggio
aggiornata la parte del SI NO come ti ho indicato, quella che ho chiamato uppa.php schematicamente
PHP:
<?php
$id=(int)$_GET['id'];//leggi l'id proveniente dalla pagina tabella
// qui i dati di connessione
$query="UPDATE PRENOTAZIONI SET ORDINATA='SI' WHERE id=$id";//fai la querysrtringa
$ris=mysql_query($query);//aggiorni
header("location:nome_pagina_tabella.php");//e torni alla pagina della tabella che risulterà aggiornata
exit();
?>
per non confonderti ho scritto con le vecchie mysql_xyz e non ho messo i controlli a quanto ricevuto col get

domenticavo:
cosa intendi con
controllare che le righe estratte siano giuste
?