Bună!
Să rezum ceea ce doresc să fac!
Doresc ca fiecare înregistrare (element) dintr-o anumită coloană, din momentul înregistrării sale în tabelul bazei de date să-mi apară într-un list, pentru a putea fi selectat!
Detaliat concret!
Am un tabel într-o bază de date care are doar două coloane, ”id” și ”alimente” unde înregistrez toate alimentele care le utilizez.
Toate acele înregistrări (alimente) doresc să îmi apară într-o listă (Drop Down List) pe o pagină unde se alcătuiesc rețete iar fiecare nouă înregistrare în tabelul alimente să îmi apară automat în acel ”List”.
Nu am idee în acest moment cum aș putea să explic altfel!
Creare lista optiuni HTML Select cu date din tabel MySQL
-
- Mesaje: 88
Creare lista optiuni HTML Select cu date din tabel MySQL
MarPlo
Mesaje: 4343
Salut
Daca ceea ce vrei e crearea unei liste <select> cu date inregistrate in tabel mysql, se face asa; in pagina /fisierul php unde vrei sa afisezi lista <select> faci un Select la acel tabel mysql, iar cu datele selectate creezi si adaugi optiunile in <select>.
Cam asa, cu PHP PDO.
- Principiul de selectare si creare a listei <select> cu optiuni e acelasi, daca vrei in loc de PDO sa folosesti MySQLi, sau mysql standard.
- Te poti descurca daca studiezi lectiile si tutorialele despre Select in mysql din Cursul php-mysql de pe site.
Daca ceea ce vrei e crearea unei liste <select> cu date inregistrate in tabel mysql, se face asa; in pagina /fisierul php unde vrei sa afisezi lista <select> faci un Select la acel tabel mysql, iar cu datele selectate creezi si adaugi optiunile in <select>.
Cam asa, cu PHP PDO.
Cod: Selectaţi tot
<?php
// Datele de conectare (adresa_server, baza_de_date, nume si parola)
$hostdb = 'localhost';
$namedb = 'numedb';
$userdb = 'username';
$passdb = 'password';
$sel = '<select name="nume">'; // contine inceputul listei select
try {
// Conectare si creare obiect PDO
$dbh = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$dbh->exec("SET CHARACTER SET utf8"); // Setare encoding caractere UTF-8
// Selectare date
$sql = "SELECT `id`, `alimente` FROM `nume_tabel`";
$datas = $dbh->query($sql);
// Daca select-ul e facut cu succes ($datas nu e false)
if($datas !== false) {
// Se parcurg si adauga datele selectate in <select
foreach($datas as $row) {
$sel .= '<option value="'. $row['alimente'] .'">'. $row['alimente'] .'</option>';
}
}
$dbh = null; // Deconectare
}
catch(PDOException $e) {
echo $e->getMessage();
}
// inchide si afiseaza lista select
$sel .= '</select>';
echo $sel;
?>
- Te poti descurca daca studiezi lectiile si tutorialele despre Select in mysql din Cursul php-mysql de pe site.
bvlucretiu
Mesaje: 88
Bună
Pentru a alcătui o rețetă sunt nevoie de mai multe alimente și în această situație am nevoie de mai multe câmpuri unde am nevoie de selectarea alimentelor pentru ca toate împreună să formeze o rețetă, iar numărul alimentelor care alcătuiesc o rețetă diferă și în această situație aș avea nevoie de un link care să-mi introducă un nou câmp cu select alimente pentru a nu umple pagina cu câmpuri <select> nici să am nevoie să mai adaug un aliment și să nu mai am unde să-l introduc.
Trebuie să repet acestă formulă (ce este cuprins între tagurile php) pentru fiecare câmp cu select?
Edit:
- Vă mulţumesc mult, funcţionează aşa cum îmi doream. Am rezolvat şi problema cu afişarea apelată a fiecărei apariţie a câmpului select.
Pentru a alcătui o rețetă sunt nevoie de mai multe alimente și în această situație am nevoie de mai multe câmpuri unde am nevoie de selectarea alimentelor pentru ca toate împreună să formeze o rețetă, iar numărul alimentelor care alcătuiesc o rețetă diferă și în această situație aș avea nevoie de un link care să-mi introducă un nou câmp cu select alimente pentru a nu umple pagina cu câmpuri <select> nici să am nevoie să mai adaug un aliment și să nu mai am unde să-l introduc.
Trebuie să repet acestă formulă (ce este cuprins între tagurile php) pentru fiecare câmp cu select?
Edit:
- Vă mulţumesc mult, funcţionează aşa cum îmi doream. Am rezolvat şi problema cu afişarea apelată a fiecărei apariţie a câmpului select.
evident
Mesaje: 168
Salut,
Uite aici codul fara PDO. Sper sa te ajute.
Daca ai nelamuriri sau codul nu merge te rog trimite-mi un mesaj pe privat sau scrie aici.
Stima.
Uite aici codul fara PDO. Sper sa te ajute.
Cod: Selectaţi tot
<?php
// Conectare la baza de date
mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("test") or die (mysql_error());
$sql = mysql_query("SELECT alimente FROM alimente");
$afisare = '';
while($row = mysql_fetch_array($sql)) {
$alimente = $row["alimente"];
$afisare .= '<option value="' .$alimente. '">' .$alimente. '</option>';
}
?>
<html>
<head>
</head>
<body>
<select>
<?php echo $afisare; ?>
</select>
</body>
</html>
Stima.
bvlucretiu
Mesaje: 88
Bună!
O problemă e că am nevoie de vreo 30 de astfel de drop dawn list-uri; nu ar exista posibilitatea să utilizez un array pentru a simplifica astfel să nu trebuiască să copiez de 30 de ori această formulă, nu este chiar aşa exagerat, dar dacă există o variantă, trebuie găsită!
Toate cele bune!
Acest name este valoarea atribuită variabilei $_POST care va specifica coloana în care se introduce obiectul selectat din list?$sel = '<select name="nume">'; // contine inceputul listei select
O problemă e că am nevoie de vreo 30 de astfel de drop dawn list-uri; nu ar exista posibilitatea să utilizez un array pentru a simplifica astfel să nu trebuiască să copiez de 30 de ori această formulă, nu este chiar aşa exagerat, dar dacă există o variantă, trebuie găsită!
Toate cele bune!
MarPlo
Mesaje: 4343
Poti adauga 2 paranteze patrate la "nume", asa: "nume[]" .
Astfel, $_POST['nume'] va contine un Array cu acele valori; adica: $_POST['nume'][0] , $_POST['nume'][1] , ...
Cod: Selectaţi tot
$sel = '<select name="nume[]">';
bvlucretiu
Mesaje: 88
Bună!
Array-ul variabilei $_POST unde trebuie construit, în pagina care prelucrează informaţia preluată din formular(url-ul tagului action)?
Deci toată formula o pun în locul unde trebuie să-mi apară drop down listul iar pentru fiecare select am:,
etc.
Nu prea am avut timp să mă gândesc la varianta oferită dar o să o aprofundez în weekend mai tare!
Toate cele bune!
Array-ul variabilei $_POST unde trebuie construit, în pagina care prelucrează informaţia preluată din formular(url-ul tagului action)?
Deci toată formula o pun în locul unde trebuie să-mi apară drop down listul iar pentru fiecare select am:
Cod: Selectaţi tot
$sel = '<select name="produs[1]">';
Cod: Selectaţi tot
$sel = '<select name="produs[2]">';
Nu prea am avut timp să mă gândesc la varianta oferită dar o să o aprofundez în weekend mai tare!
Toate cele bune!
Subiecte similare
-
Creare meniu in site cu php
Scripturi de pe site
Primul mesaj
SalutUltimul mesaj
Am incercat sa pun icons pe primul nivel al meniului din tutorialu tau: Creare site de la zero si nu reusesc sa il adaug pe butonele care...
Multumes pt ajutor
Este ok acum.
Din exeplul dat de tine am mai vazut ceva intersant si anume acel meniu asa zis breadcrumb cu ce ma selectat deja.... -
Valoarea id-ului din HTML atribuită unei variabile php
PHP - MySQL - XML
Primul mesaj
Încerc să extrag valorile id= min5 , id= max5 si să le pun în $_GET $_GET fara trimitere în altă paginăUltimul mesaj
cum aș putea proceda?
<div class=...
Nu prea inteleg ce vrei sa faci.
Codul php se executa pe server inainte de a fi pagina cu codul html si javascript.
In php, valorile pentru...