MEMO: Ho ricordato una cosa: alcuni titoli hanno lo stesso codice poiché sono compresi in un unico libro (infatti avevo dichiarato come chiave del DB la coppia codice-titolo). Nella query avevo inserito la condizione CODICE = $code AND TITOLO = $title
Ho provato il tuo codice ma non funziona, a quanto sembra non mantiene i parametri perché la pagina viene aggiornata (come quando invii il form) ma non ho nessun messaggio, nessun risultato, ma la schermata vuota come se non fosse stato selezionato alcuna voce.
ciao
non ho capito bene cosa non ti funziona
1) fai la ricerca con i vari radio e la text, al subimit
2) ti appare l'elenco dei libri trovati (autore e titolo)
3) clicchi su uno dell'elenco
4) ti appare la scheda con tutti i dati del libro (giusto sin qui?)
5) confermi e clicchi su elimina
e qui cosa succede?
a) il record viene eliminato? verifica con myadmin
b) vieni reindirizzato ad una pagina che ti chiede se vuoi cercare o aggungere un libro?
1) fai la ricerca con i vari radio e la text, al subimit OK
2) ti appare l'elenco dei libri trovati (autore e titolo) OK
3) clicchi su uno dell'elenco OK
4) ti appare la scheda con tutti i dati del libro OK
5) confermi e clicchi su elimina
e qui cosa succede?
a) il record viene eliminato? verifica con myadmin
Il record non viene eliminato. Viene in sostanza 'ricaricata' la stessa pagina SENZA le informazioni del titolo che io avevo scelto. Non mi reindirizza alla pagina della ricerca. Semplicemente azzera quella dei dettagli, senza eseguire la query.
<?php
//......
if(isset($_POST['elimina']) && $_POST['si']!=""){
$del="DELETE FROM elenco_libri WHERE CODICE='".$_POST['si']."'";
var_dump($del);//guarda e posta cosa ti risulta
$ris=mysql_query($del);
if($ris){
echo "il libro ".$_POST['si']." è stato eliminato<br />";
}else{
echo "errore: il libro non è stato eliminato<br />";
}
//aggiungi questa
unset($_SESSION['code']);
//questa provvisoriamente commentala per vedere il risultato del var_dump
//comunque corretta per tornare alla ricerca
//echo "<meta http-equiv='Refresh' content='3; URL=cerca.php'>";
}
?>
vuoi elminare la scheda?<br />
<!-- ..... -->
dimmi cosa risulta da quel var_dump
es. se ha selezionato il codice a77
se risulta
string(43) "DELETE FROM elenco_libri WHERE CODICE='a77'";
ciao
ricapitolando.
spunti la conferma e clicchi su elimina:
la pagina non si muove e il record non viene eliminato?
il var_dump nan da nulla?
se non da nulla devo verificare come mai non entra nell'iff.
per sicurezza modifica
vuoi elminare la scheda?<br />
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="elimina">
<!-- eliminare è sempre un richio quindi ti metto che devi dare la conferma selezionando si-->
se si seleziona <input name="si" type="radio" value="<?php echo $_SESSION['code']; ?>"> e <input name="elimina" type="submit" id="elimina" value="elimina">
</form>
l'action vuota o così dovrebbe essere la stessa cosa, ma non si sa mai.
correggi e riprova
intanto io faccio alcune prove
Non succede niente... Troverò un altro modo... Comunque se aggiorno la pagina del dettaglio dopo aver aggiornato, il libro "scompare" nel senso che i dettagli si azzerano... Cercherò di studiare un altro modo
Ciao Borgo!
Ho fatto qualche correzione nel mio codice e l'eliminazione va...
Tuttavia ho riscontrato un paio di problemi...
1) PAGINA DELLA RICERCA.
Mi avevi consigliato di impostare come default la ricerca per codice. Quando provo a farla andare (di conseguenza cerco senza spuntare i radio button), la ricerca funziona ugualmente, ma spunta l'errore:
Notice: Undefined index: Radio_Ricerca in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\ricerca.php on line 88
E alla riga 88 c'è lo switch per i vari radio-button. Come lo metto a posto? Nel senso, gli dico "Mettimi questo se non c'è niente"?
2) PAGINA DEI DETTAGLI
Esegue l'eliminazione correttamente, ma una volta eliminata la variabile di sessione che contiene il codice, viene fuori questo errore:
Notice: Undefined index: code in C:\Program Files (x86)\EasyPHP-12.1\www\my portable files\dettagli_libro.php on line 43
Alla riga in questione c'è la query
$query = "SELECT * FROM elenco_libri WHERE CODICE='".$_SESSION['code']."' ORDER BY AUTORE, TITOLO";
<?php
//.......
if(isset($_POST['Radio_Ricerca'])) {
switch ($_POST['Radio_Ricerca']) {
case "Codice": $wh = " UPPER(CODICE) LIKE '$stringa%'";
break;
case "Categoria": $wh = " UPPER(CATEGORIA) LIKE '%$stringa%'";
break;
case "Autore": $wh = " UPPER(AUTORE) LIKE '%$stringa%'";
break;
case "Titolo": $wh = " UPPER(TITOLO) LIKE '%$stringa%'";
break;
case "Casa_ED": $wh = " UPPER(CASA_EDITRICE) LIKE '%$stringa%'";
break;
case "Anno": $wh = " UPPER(ANNO) LIKE '%$stringa%'";
break;
case "Tutto": $wh = "UPPER(CODICE) LIKE '$%stringa%' OR UPPER(AUTORE) LIKE '%$stringa%' OR UPPER(TITOLO) LIKE '%$stringa%' OR UPPER(CASA_EDITRICE) LIKE '%$stringa%' OR UPPER(ANNO) LIKE '%$stringa%'";
break; // QUESTO
default: $wh = " UPPER(CODICE) LIKE '$stringa%'";
break;
}
//.....
?>