Am vazut ca multi incepatori au probleme la preluarea datelor dintr-o baza de date si folosirea lor in formulare, pentru inceput o sa creez 1 tabel in care o sa introduc 3 valori.
codul tabelului:
CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nume` varchar(25) CHARACTER SET utf8 NOT NULL, `prenume` varchar(25) CHARACTER SET utf8 NOT NULL, ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Inserturile in tabel :
INSERT INTO `test` (`nume`, `prenume`) VALUES ('Andrei', 'Ghilea'), ('Ion', 'Smaranda'), ('Vlad', 'Pascutoi');
Acum vom folosi date din tutorialele anterioare : conectarea la baza de date
<?php //facem conexiuea la mysql //selectarea bazei de date //compunem selectul pentru extragerea datelor $query="SELECT * FROM `test`"; //rulam query //daca query-ul este eronat if(!$rez){ } //cat $row e array ne vid //formam matricea datelor $date[$row['id']]=$row; } //daca nu sunt date } //variabila de stocare a continutului $continut=''; //preluam tipul de formular //start switch switch($form){ //select case 'select': //compunem selectul cu datele din baza de date $select='<select name="select">'; foreach($date as $val){ $select.='<option value="'.$val['id'].'"> '.$val['nume'].' '.$val['prenume'].' </option>'; } $select.='</select>'; //compuemm tabelul in care punem selectul $continut='<table align="center"><form method="post" action="probleme1.php?form=preia">'; $continut.='<tr><th colspan="2"> Afisarea datelor in select </th></tr>'; $continut.='<tr><td>Alege un nume</td><td>'.$select.'</td></tr>'; $continut.='<tr><th colspan="2"><input type="submit" value="Trimite"></th></tr>'; $continut.='</table></form>'; break; case 'preia': //daca nu s-au trimis date } break; } echo '<center><pre>'.$continut.'</pre></center>'; ?>
In cazul in care doriti sa afisati si sa introduceti datele in baza de date, facesti select, update etc treceti datele prin stip_xss() si strip_sqli() functiile din tutorialele protectia la xss si protectia sql injection .
Cam atat despre preluarea datelor din formulare,bafta pana data viitoare