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
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
Da este ok.
Mersi.

Insa mai am o nelamurire:
Cum pot seta un rand din tabelul date sa faca parte din ambele categorii?

sterica
cum adica sa faca parte din ambele categorii?

MarPlo
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
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
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.

Subiecte similare