[PHP] Creare un menu a tendina con pdo

Max61

Utente Attivo
2 Mar 2014
740
4
18
Salve, andando avanti nella conversione da PHP 5 A PHP 7, mi sorgono altri problemi che da solo anche con esempi presi in rete non ce la faccio.
PHP:
$sql = "SELECT *

FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno";
$result = mysql_query($sql);

echo "<select name='Anno'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo "</select>";
Ho provato questo codice ma da questo errore
Fatal error: Uncaught Error: Call to undefined function mysql_query()
in questa riga
PHP:
$result = mysql_query($sql);
come posso risolvere?
Grazie
Max61
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
prova così
PHP:
$sql = "SELECT *
FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno";

$result = $db->query($sql)->fetchAll();

echo "<select name='Anno'>";
while ($result as $row)
{
    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo "</select>";
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Provato...mi da questo errore
Parse error: syntax error, unexpected 'as' (T_AS)
in questa riga
PHP:
while ($result as $row)
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
La sintassi da utilizzare con "as" è foreach o foreachelse , quest'ultima è disponibile solo se utilizzi un template engine.
In definitiva non si usa il while in questo modo!
while ($result as $row)
Il while si aspetta un confronto, non assegna nulla nè per riferimento nè per valore!
PHP:
while (expr):
   statement
   ...
endwhile;
http://php.net/manual/en/control-structures.while.php

Sintassi corretta con l'utilizzo di "as"
PHP:
foreach($result as row){
}

Altra sintassi
PHP:
for($i=0;$i<count($result);$i++){
    echo $result[$i]['Dato'];
}

Sintassi con while
PHP:
$i=0;
while($i<count($result)){

echo $result[$i]['Dato'];
$i++;
}

Se vuoi la ricorsione:
PHP:
$test=range('a','z');
function print_my_data(&$i,$data){
   if(($i<=>count($data)-1)<=0){
      echo $data[$i];
      $i++;
      return print_my_data($i,$data);
   }
}
$i=0;
print_my_data($i,$test);
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao, ho provato ma mi da errore sulle parentesi, ho provato a seguirlo ma... niente
PHP:
$sql = "SELECT *
FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno";

$result = $db->query($sql)->fetchAll();

echo "<select name='Anno'>";
foreach($result as row){
}
    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo "</select>";
errore qua
PHP:
foreach($result as row){
Parse error: syntax error, unexpected ')', expecting '[' in
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
hai chiuso prima!!!!!!!!!
echo "<select name='Anno'>";
foreach(
$result as row){
}
echo
"<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo
"</select>";
Aperta { metti codice chiudi }..
PHP:
foreach($result as row){
    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
oK..questa è la query completa
PHP:
$sql = "SELECT *
FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno";

$result = $db->query($sql)->fetchAll();

echo "<select name='Anno'>";
foreach($result as row){
    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
stesso riga, stessa errore
Parse error: syntax error, unexpected ')', expecting '[' in
dove sbaglio?
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Sorry colpa mia... copiando e incollando mi sono perso un pezzo....
PHP:
//qui manca l'ass variabile "$row"
foreach($result as $row){
    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ho provato così, ma ora da errore alla riga 245
PHP:
$sql = "SELECT *
FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno";

$result = $db->query($sql)->fetchAll();

echo "<select name='Anno'>";
foreach($result as $row){

    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo "</select>";
riga 245
PHP:
$result = $db->query($sql)->fetchAll();
Fatal error: Uncaught Error: Call to a member function query()
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
installato e abilitato, la versione è:
  • Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
query completa
PHP:
require('Connessione.php');

    try {
  // stringa di connessione al DBMS
  $connessione = new PDO("mysql:host=$host;dbname=$db", $user, $password);
  // imposto dell'attributo necessario per ottenere il report degli errori
  $connessione->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // selezione e visualizzazione dei dati estratti
  $sql = "SELECT *
FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno";

$result = $db->query($sql)->fetchAll();

echo "<select name='Anno'>";
foreach($result as $row){

    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo "</select>";

  // chiusura della connessione
  $connessione = null;
}
catch(PDOException $e)
{
  // notifica in caso di errore nel tentativo di connessione
  echo $e->getMessage();
}
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
try {
// stringa di connessione al DBMS
$connessione = new PDO("mysql:host=$host;dbname=$db", $user, $password);
// imposto dell'attributo necessario per ottenere il report degli errori
$connessione->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// selezione e visualizzazione dei dati estratti
$sql = "SELECT *
FROM tblanagrafica
WHERE Anno <> 0
GROUP BY Anno
ORDER BY Anno"
;

$result = $db->query($sql)->fetchAll();
PHP:
$result=$connessione->query($sql)->fatchAll()
$db non è definita.... devi usare $connessione!!!!!
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
fatto, adessso
Fatal error: Uncaught Error: Call to undefined method PDOStatement::fatchAll()
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
scusate, ma se io volessi un valore vuoto nella tendina tipo
echo "<option value =''>seleziona</option>";//valore vuoto
prima dei dati?
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
echo "<select name='Anno'>";
foreach(
$result as $row){

echo
"<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo
"</select>";
PHP:
echo "<select name='Anno'>";
echo "<option value=''>Seleziona Anno</option>";
foreach($result as $row){

    echo "<option value='" . $row['Anno'] ."'>" . $row['Anno'] ."</option>";
}
echo "</select>";
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Menu e creare in php PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
J creare pagina php di prenotazione PHP 5
F [PHP] creare tabella e tasto cerca PHP 3
B [PHP] Creare PDF dopo inserimento dati form PHP 4
R [PHP] Creare sistema random PHP 3
D [PHP] Consigli su come creare form PHP 1
T [PHP] Creare Honeypot per form contatti PHP 10
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
Z Creare VirtualHost Apache2 con PHP? Programmazione 0
T con oop creare un ciclo per una pagina dinamica html con php PHP 3
E [PHP] creare temporary table per dati da xml PHP 2
R [PHP] creare pagina profilo per ogni utente PHP 4
G [PHP] Creare mail con allegato nascosto e bottone di richiamo PHP 0
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
Shyson [WordPress] [PHP] Creare codice che evidenzia nuovi articoli WordPress 0
ANDREA20 creare sito in php PHP 6
G [PHP] Creare appuntamento ed inviarlo tramite mail (Outlook e Gmail) PHP 0
F [PHP] Creare un'area web riservata PHP 13
S [PHP] [HTML] Come creare un grafico dinamico PHP 4
V Creare tabella mysql con php non funziona PHP 1
M Creare tabella da pagina php popolata con valori passati con POST PHP 5
B [PHP] hp script creare un utente diminuendo -1 e cosi via PHP 1
AntoCastro [PHP] Creare un sito di quiz a catena PHP 17
V Creare funzioni PHP per agevolare bootstrap PHP 1
B funzioni per creare file e inserirli dentro una certa cartella in php? PHP 1
F Creare pagina PHP come quella di phpMyadmin PHP 12
M Creare tabella da pulsante php PHP 6
M Creare un exe da un listato php PHP 5
P [PHP] Creare un elenco completo con tabella PHP 3
Zea [PHP] RISOLTO - creare link con il risultato dell'interrogazione db PHP 1
utente è possibile creare una pagina php che copia interamente il contenuto di un'altra pagina ? PHP 10
A [PHP] Creare numero ticket casuale PHP 5
giannit [PHP] Creare pagina con collegamenti ipertestuali da file txt PHP 6
B [PHP] Creare un'interfaccia di inserimento testo in varie posizioni PHP 1
sandropochi [PHP] Form per creare filtro di ricerca su DB PHP 8
L [PHP] Creare un uploader di file csv xls e ricercare i risultati PHP 0
Zayciho [PHP] Creare sito web dinamico PHP 5
P [PHP] Creare elenco immagini PHP 2
L [php e xml] per creare una galleria fotografica con diversi file xml PHP 0
M [PHP] Creare chart con highchart PHP 6
T [PHP]Creare cookie PHP 5
Monital [PHP] Creare un array da stringa con diversi spazi PHP 3
P [PHP] come creare una chat PHP 24
trattorino Creare codice php help PHP 26
R [PHP] [HTML] Creare script invio modulo contatti PHP 2
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
S PHP: creare un link in una pagina PHP 7

Discussioni simili