afisare date din db in functie de option selectat
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
sagap
- Mesaje: 12
afisare date din db in functie de option selectat
Salut,
Incerc sa afisez date in funtie de categoria aleasa. Folosesc urmatorul cod:
Cod: Selectaţi tot
<?php
include("config.php");
$conexiune=mysql_connect($hostname,$username,$password)
or die ("Nu ma pot conecta la baza de date");
$bazadate=mysql_select_db($database,$conexiune)
or die ("Nu gasesc baza de date");
$sql = "select * from category";
$result = mysql_query($sql);
echo '<select id="category" name="category">';
if(mysql_num_rows($result) > 0)
{
while ($row = mysql_fetch_assoc($result))
{
echo '<option value="'.$row["cat_id"].'">'.$row["name"].'</option>';
}
}
echo '</select>';
if(!empty($_POST['category'])) {
$sql = "select * from date WHERE category='1'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0)
{
while ($row = mysql_fetch_assoc($result))
{
echo $row["url"];
}
}
}
?>
Iar structura DB este:
Cod: Selectaţi tot
Category
-cat_id= 1,2
-name=test1, test2
Date
-id=1
-url=google.ro
-category=1
Dupa ce aleg categoria, acesta nu imi afiseaza rezultatele. In cazul meu atunci cand aleg test 1 ar fi trebuie sa imi apara ca rezultat "google.ro".
Unde ar putea fi problema.
sterica
Mesaje: 285
ar trebui sa ai in cod si un
Cod: Selectaţi tot
<form action="" method="POST">iar aici sa intre selectrul</form>
, trebui sa specifici metoda prin care se transmit datele
sagap
Mesaje: 12
Da este ok.
Mersi.
Insa mai am o nelamurire:
Cum pot seta un rand din tabelul date sa faca parte din ambele categorii?
sterica
Mesaje: 285
cum adica sa faca parte din ambele categorii?
MarPlo
Mesaje: 4343
sagap scrie:Cum pot seta un rand din tabelul date sa faca parte din ambele categorii?
O varianta simpla e sa adaugi inca o data acel rand, cu id de categorie care vrei:
Cod: Selectaţi tot
id | url | category
1 | google.ro | 1
2 | marplo.net | 1
3 | marplo.net | 2
sagap
Mesaje: 12
Multumesc de raspuns.
Asa m-am gandit si eu, in acest fel vor fi aprox. 50.000.000 de randuri, sper sa extraga datele in timp bun (inca folosesc localhost pentru teste).
MarPlo
Mesaje: 4343
O varianta mai complexa, dar care reduce numarul de randuri in tabel, e sa folosesti mai multe id-uri la coloana "category", intre ghilimele, cam asa:
Cod: Selectaţi tot
id | url | category
1 | google.ro | ,1,
2 | marplo.net | ,1,2,
La partea de php va trebui sa tii cont de aceasta structura, la Insert si Select.