[PHP] estrarre i risultati di una query e visualizzarli in una tabella.

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
Buonasera ragazzi, ho bisogno del vostro aiuto se potete.. ho fatto un form per ricercare delle ricette in base alla tipologia, il codice è il seguente:

HTML:
<h4>Ricerca ricette</h4>
<form name="ric_tip" method="post" action="ric_tipologia.php"><br/>
   <table>
       <tr>
           <td>Per tipologia:
           <select name="tipologia" size="1">
               <option value="Antipasto">Antipasto</option>
               <option value="Primo">Primo</option>
               <option value="Secondo">Secondo</option>
               <option value="Contorno">Contorno</option>
               <option value="Dolce">Dolce</option>
               <option value="Piatto Unico">Piatto unico</option>
           </select>&nbsp;<input type="submit" value="CERCA">
           </td>
       </tr>
   </table>
</form>

ho dei problemi sul file ric_tipologia.php che è caratterizzato dal seguente codice:
PHP:
<?php
session_start();
include("config.inc.php");
$query_tip = mysql_query("SELECT id_ricetta, tipologia, nome FROM ricetta WHERE tipologia='".$_POST["tipologia"]."'")
or die ("ricerca per tipologia non riuscita ".mysql_error());
include ("header.php");
echo "<p align=right><b>Leggenda</b></p>
<table align=right>
   <tr><td align=center>tipologia</td><td align=center>nome</td></tr>
   <tr><td align=center>0</td><td align=center>Antipasto</td></tr>
   <tr><td align=center>1</td><td align=center>Primo</td></tr>
   <tr><td align=center>2</td><td align=center>Secondo</td></tr>
   <tr><td align=center>3</td><td align=center>Contorno</td></tr>
   <tr><td align=center>4</td><td align=center>Dolce</td></tr>
   <tr><td align=center>5</td><td align=center>Piatto unico</td></tr>
   </table>";
if(isset($query_tip)){ //se la selezione è andata a buon fine
   echo "<form name=\"vis_tip\" method=\"post\" action=\"carrello.php\">";
   while($row=mysql_fetch_assoc($query_tip)){
       echo "<table border=\"1\">
       <tr><td align=\"center\">id</td><td align=\"center\">Tipologia</td><td align=\"center\">Nome</td><td align=\"center\">Salva</td></tr>
       <tr><td align=\"center\">$row[id_ricetta]</td><td align=\"center\">$row[tipologia]</td><td align=\"center\">$row[nome]</td><td align=\"center\"><input type=\"checkbox\" align=\"center\" name=\"salva\" value=\"salva\"/></td></tr>
       </table><p/>";
   }
   echo "<input type=\"button\" value=\"indietro\" onclick=\"history.back(1)\">
   <input type=\"submit\" value=\"salva\">
   </form>";
   //header("location:tipologia.php");
} else{
echo "nessun elemento è stato trovato";
}
?>

Il problema è che anche se io seleziono Dolce nel form di ricerca, come risultato mi viene mostrato un piatto la cui tipologia è antipasto. idem per i primi, secondi, contorni e piatti unici.. mi mostra sempre l'antipasto.. eppure la query che ho scritto mi sembra corretta.. dove sbaglio? grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
correggi il submit
<input type="submit" value="CERCA" name="CERCA">
poi dividi la query metti una var_dump
PHP:
//......
$query= "SELECT id_ricetta, tipologia, nome FROM ricetta WHERE tipologia='".$_POST["tipologia"]."'";
var_dump($query):
$query_tip = mysql_query($query);
//....
e guarda se la query viene come dovrebbe
 

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
Ciao, ho fatto come dici tu: se metto i due punti alla fine dell'istruzione var_dump($query) mi dà errore si aspetta il ;
a parte questo che ho messo appunto il ; mettendo il codice come hai detto tu la schermata resta la stessa l'unica differenza è che mi appare il numero della riga e poi la query come dovrebbe ovvero se seleziono Primo mi da
string(71) "SELECT id_ricetta, tipologia, nome FROM ricetta WHERE tipologia='Primo'" però sotto quando si tratta di mostrare i risultati nella tabella non me li mostra esatti... ti faccio l'esempio pratico, nel mio database nella tabella ricetta ho messo come primo spaghetti con il tonno, e come antipasto involtini di bresaola e rucola, se seleziono Primo, idem per le altre tipologie mi mostra sempre involtini di bresaola e rucola che io ho catalogato come antipasto.... non so se mi sono spiegata.
 

Allegati

  • Immagine.jpg
    Immagine.jpg
    35,9 KB · Visite: 312

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il : errore di scrittura
la query sembra giusta, verifica i nomi dei campi della tabella e i valori che contengono
mi accorgo adesso:
nella tabella a sinistra vedo che per tipologia hai messo 0 non è per caso che nel campo tipologia tu abbia o 0 o 1 o... al posto di 'antipasti' o 'primo' o... ?
 
Ultima modifica:

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
Allora nel database che ho creato ho una tabella tipologia:

[SQL]
CREATE TABLE IF NOT EXISTS `tipologia` (
`id_tipologia` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(25) NOT NULL,
PRIMARY KEY (`id_tipologia`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
[/SQL]

che contiene i seugenti dati:
[SQL]
INSERT INTO `tipologia` (`id_tipologia`, `nome`) VALUES (1, 'antipasto'), (2, 'primo'), (3, 'secondo'), (4, 'contorno'), (5, 'dolce');
[/SQL]

e poi ho una tabella ricetta che ha i seguenti campi: id_ricetta [int(11)], tipologia [int(11)], nome [varchar(30)], calorie [int(11)], cottura [int(11)], difficolta [int(11)], porzioni [int(11)], preparazione [text], note [text];
schematicamente ti riporto i dati inseriti in quest'ultima tabella:
(1, 4, torta di mele, 365, 40, 4, 10, testo, testo)
(2, 0, involtini di bresaola e rucola, 75, 30, 1, 10, testo, testo)
ecc così ho fatto una ricetta per ogni tipologia per ora.
 

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
si si tranquillo, io nel frattempo cerco di capire un pò di più di php leggendo qualche guida in rete.... ;)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dai un occhio, ti schematizzo, leggi i commenti
PHP:
<?php
//dati di connessione
//USA le MYSQLI, le vcecchie istruzioni mysql sono obsolete
$query="SELECT * FROM tipologia";//se non la usi a che ti serve la tabella tipologia?
$rir=mysqli_query($connessione, $query);
?>
<h4>Ricerca ricette</h4>
<form name="ric_tip" method="post" action="ric_tipologia.php"><br/>
    <table>
    <tr>
    <td>Per tipologia:
        <select name="tipologia" size="1">
<?php
    //se aggiungi/modifichi/elimini una tipologia la <select> si aggiorna in automatico
    while($tipo=mysqli_fetch_assoc($ris)){
        $id_tip=$tipo['id_tipologia'];
        $nome=$tipo['nome'];
        //se nerlla tabella ricetta hai messo nel campo tipologia l'id della tipologia
        echo "<option value=\"$id_tip\">$nome</option>";
        /*
        se invece nel campo hai messo il nome della tipologia l'otion sopra diventa
        echo "<option value=\"$nome\">$nome</option>";
        */
    }
?>
         </select>&nbsp;<input type="submit" value="CERCA">
        </td>
       </tr>
   </table>
</form>
e nella pagina ric_tipologia.php
PHP:
<?php
//....connessione ecc....
//se nel campo c'è il nome
$query_tip = mysqli_query($connessione,"SELECT id_ricetta, tipologia, nome FROM ricetta WHERE tipologia='".$_POST["tipologia"]."'");
//nota: se in tipologia c'è l'id non devi mettere gli apici
//ecc......
?>
 
  • Like
Reactions: username90

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
Buongiorno, allora ho fatto come dici ma lì dove hai detto di mettere i dati di connessione io ho messo un include ("config.inc.php") perchè avevo creato apposta questo file per la connessione senza ripetere ogni volta tutte le istruzioni, in questo file config.inc.php ho messo due semplici istruzioni :
$connessione=mysql_connect("localhost", "user", "password") or die ("Conessione non riuscita: ".mysql_error());
mysql_select_db("nomedb", $connessione) or die ("Selezione database non avvenuta");
poi altra cosa: mi dà errore Warning: mysqli_query() expects parameter 1 to be mysqli, a questa istruzione $ris=mysqli_query($connessione, $query); che io scritto così come hai detto tu..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se usi le mysqli (meglio) la connessione deve essere così
PHP:
<?php
$host = 'xxxxxx';     //nome tuo host
$username = 'aaaaa';      //tuo user name
$password = 'bbbbb';  //tua password
$db = 'cccccc';            // nome tuo data base
//---connessione----------------------------------------------------
$connnessione = mysqli_connect($host,$username,$password,$db) or die (mysql_error());
?>
 
  • Like
Reactions: username90
Discussioni simili
Autore Titolo Forum Risposte Data
D [PHP/SQL] Estrarre risultati da 2 database Database 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [PHP] Estrarre dati da tabella e fare la media ad intervalli di tempo PHP 11
R [PHP] Estrarre id utente loggato.? PHP 4
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
trattorino estrarre titolo video facebook in php PHP 0
N [PHP] Estrarre singolo valore da array PHP 4
trattorino [PHP] sql estrarre in base all'ultima visita PHP 4
Jensen [PHP] Estrarre prossimi 4 lunedì PHP 4
trattorino [PHP] estrarre dati singoli PHP 1
G [PHP] estrarre data da timeline yyyy-dd-gg hh:mm:ss PHP 4
S [PHP] Estrarre dati colonna in una stringa PHP 6
S [PHP] estrarre dati sito web protetto con username e password PHP 13
Merlina3377 [PHP] estrarre solo un determinato id da tanti con REGEXP O LIKE PHP 1
trattorino Estrarre Nome Utente jquery div php PHP 9
S [PHP] estrarre le email da un elenco di url PHP 21
T4MAR4 [PHP] estrarre tag da un testo PHP 3
T [PHP] Estrarre stringa PHP 3
G [PHP] ESTRARRE DA DB VALORE MASSIMO E MINIMO IN UN INTERVALLO IMPOSTABILE A PIACERE PHP 56
bubino8 [PHP] Estrarre dominio No Sottodomini PHP 10
L [PHP] Estrarre dati da sito web Offerte e Richieste di Lavoro e/o Collaborazione 4
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
giancadeejay [PHP] Estrarre solo record dell'utente connesso PHP 4
S [PHP] estrarre numero da stringa PHP 5
giuseppe_123 [PHP] Estrarre giorno mese e anno da una data PHP 2
A [PHP] metodo di una classe per estrarre i dati con ciclo while PHP 1
asevenx [PHP] Estrarre valori evitando dublicati dal database PHP 2
filippino Script PHP per estrarre dati estrazioni da sito "10 e lotto" PHP 0
M Php+MySql: Estrarre dati da tabella e consentire all'utente di modificare un valore 'in linea' PHP 6
R Estrarre dati da tabella mysql [era:Sto benedetto php] PHP 22
M Estrarre dato da php e mysql PHP 5
A Estrarre da un Datetime di mysql la data e l'orario in PHP PHP 2
O [help] estrarre e visualizzare dati da mysql con php a oggetti PHP 6
I Estrarre dati da un file php PHP 3
P estrarre dati xml excel con php XML 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3

Discussioni simili