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

giacomo9783

Utente Attivo
24 Ago 2016
99
0
6
41
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???
 
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
 
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"
 
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
 
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!
 
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
?
 

Discussioni simili