Ricerca nel DB con radiobutton + riempimento select

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova così, poi mi sai dire se funzia
PHP:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>scheda del libro</title>
</head>
<body>
 <?php
//dati di connessione
if(isset($_POST['Risultati_Ricerca'])){
	$_SESSION['code']=$_POST['Risultati_Ricerca'];
}
$query = "SELECT * FROM elenco_libri WHERE CODICE='".$_SESSION['code']."'";
$q = mysql_query($query);
if(mysql_num_rows($q)==1){
	$riga=mysql_fetch_array($q);
	$code = $riga['CODICE'];
	$category = $riga['CATEGORIA'];
	$author = $riga['AUTORE'];
	$title = $riga['TITOLO'];
	$publishing = $riga['CASA_EDITRICE'];
	$pubyear = $riga['ANNO'];
	$pubplace = $riga['LUOGO'];
	//qui poi ci penserai tu con i css
	echo "codice libro: $code<br />";
	echo "categoria: $category<br />";
	//ecc....
}else{
	echo "il libro codice $code non esiste o è stato eliminato<br />";
}
if(isset($_POST['elimina']) && $_POST['si']!=""){
	$del="DELETE FROM elenco_libri WHERE CODICE='".$_POST['si']."'";
	echo "li libro ".$_POST['si']." è stato eliminato<br />";
	echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
?>
vuoi elminare la scheda?<br />
<form action="" 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>
<a href="cerca.php">altra ricerca</a>
</body>
</html>
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
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.

Forse così si capisce meglio

iMG.png
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Il codice l'ho inserito nella pagina della scheda (nel titolo hai messo "scheda del libro")
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
penso di essermi dimenticato un mysql_query
PHP:
<?php
//......
$del="DELETE FROM elenco_libri WHERE CODICE='".$_POST['si']."'";
mysql_query($del);
//....
?>
prova

p.s.
aha l'immagine rappresenta due pagine allora
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
L'immagine, sì comprendeva più pagine...
Il mysql_query l'avevo aggiunto io... Ma non va ugualmente
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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?
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
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.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
fai questa modifica e metti un var_dump
PHP:
<?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'";
dovrebbe eliminare (hai messo giusti i dati di connessione?)
se invece
string(40) "DELETE FROM elenco_libri WHERE CODICE=''";
devo capire perche non trasmette il codice
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
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
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
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";
che naturalmente non si ritrova più "code"...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non erro nello switch manca un break
PHP:
<?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;            
        } 
//.....
?>
prova e sappimi dire
poi guardo la session
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
nella scheda prova a commentare l'unset
PHP:
<?php
//....
 //unset($_SESSION['code']); 
//...
?>
oppure lasciando l'unset prova a reindirizzare direttamente alla pag di ricerca
PHP:
<?php
//....
	unset($_SESSION['code']);
	echo "li libro ".$_POST['si']." è stato eliminato<br />";
    echo "<meta http-equiv='Refresh' content='3; URL=cerca.php'>";
}
//...
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Ricerca con auto compilazione nel database PHP 2
G Come modificare una ricerca nel proprio sito con piu elenchi Classic ASP 1
U PHP creare un file excel dopo ricerca nel DB PHP 0
L PHP motore di ricerca nel sito PHP 1
ANDREA20 [PHP] motore di ricerca nel sito PHP 11
T [PHP] Ricerca nel database PHP 2
M Problemi Motore di RICERCA INTERNA NEL SITO Javascript 0
L Ricerca nel DB tramite select PHP 3
L Ricerca nel DB tramite select PHP 1
S Motore di ricerca nel sito PHP 6
O Aiuto ricerca e stampa nel db Database 0
R Problema nel $_POST di dati per ricerca su DB PHP 12
M Ricerca dati nel file txt Java 16
E ricerca dati nel DB mysql. PHP 16
E come mai tutti i siti xoomer.alice.it non compaiono nel motore di ricerca yahoo? SEO e Posizionamento 3
S domanda semplice per ricerca nel db Classic ASP 2
U Ricerca di ancore nel sito Javascript 1
I Tools Ricerca nel sito Supporto Mr.Webmaster 1
I Tools Ricerca nel sito Discussioni Varie 1
S Creare un motore di ricerca nel sito Discussioni Varie 1
F access ricerca record con apostrofo. MS Access 0
C Ricerca Prodotti Woocommerce Javascript 0
G Colorare menu select attraverso ricerca php PHP 0
G Menù a tendina di ricerca con query PHP 1
R Problema query con ricerca id numerico PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
F Visualizzazione motore di ricerca SEO e Posizionamento 2
B Stringa sql per ricerca su più campi Database 1
F Funzione Glob - ricerca file contenente una parola PHP 1
P Ricerca campo data PHP 1
L titolo del sito nella pagina di ricerca di google SEO e Posizionamento 2
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
L Ricerca valore mysql e incremento PHP 73
E Problema motore di ricerca FULL_TEXT PHP 0
motleyrulez Ricerca filtro con Ajax PHP 1
Shyson [CSS] Posizionare casella di ricerca HTML e CSS 3
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
B Campo ricerca domini HTML e CSS 4
V Ricerca volontari questionario tesi - Ricambio Offerte e Richieste di Lavoro e/o Collaborazione 0
L Ricerca sviluppatori PHP tempo indeterminato Milano Offerte e Richieste di Lavoro e/o Collaborazione 0
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
L [PHP] Ricerca su search bar esterna PHP 1
D Ente di Formazione accreditato in Regione Lazio ricerca Front End Developer Offerte e Richieste di Lavoro e/o Collaborazione 3
N [WordPress] Ricerca tema WordPress 6
Alex_70 [PHP] Ricerca con risultati cliccabili PHP 21
Federico.Marcelo Alla ricerca di scrittori post guest Offerte e Richieste di Lavoro e/o Collaborazione 0
O [PHP] Ricerca record tramite post PHP 7
GraceHawk [MS Access] Findfirst per ricerca record MS Access 1
A [Javascript] Mostrare un marker se è vicino al risultato di ricerca con google maps Javascript 3

Discussioni simili