Pagina 1 din 1

Select in MySQL in functie de alt Select

Scris: Dum Noi 20, 2011
de claUdiu
Buna! Vreau sa afisez si eu niste date dintr-o categorie dar am o problema. Am acest cod:

Cod: Selectaţi tot

<?php
include("config.php");

//Selectam categoria cu id-ul preluat din $_GET
$id_categorie = $_GET['cid'];

$select = mysql_query("SELECT * FROM category WHERE id = '$id_categorie'");

while($afis = mysql_fetch_assoc($select)){

$categorie = $afis['name'];

//Selectam posturile din aceasta categorie

$select2 = mysql_query("SELECT * FROM posts WHERE category = 'Jocuri'");

while($afis2 = mysql_fetch_array($select2)){

$titlu = $afis2['title'];
$id = $afis2['id'];
$mesaj = $afis2['post'];
$categorie = $afis2['category'];
$data = $afis2['date'];

echo '<a href="read.php?pid='.$id.'"><h2>'.$titlu.'</h2></a>';

echo '<font color="blue">Categorie: '.$categorie.' Postat pe '.$data.'';
echo "<br/>";
echo "<br/>";
echo '<font color="black" size="5">'.$mesaj.'</font>';
echo "<br/>";
echo "<br/>";
echo "<br/>";
}
}
?>
DAr nu merge. Ideea este ca prima oara vreau sa selectez categoria dupa id-ul preluat cu $_GET, iar dupa aceea sa afisez posturile care sunt in categoria selectata prima oara.

Am facut si asa:

Cod: Selectaţi tot

<?php
include("config.php");

//Selectam categoria cu id-ul preluat din $_GET
$id_categorie = $_GET['cid'];

$select = mysql_query("SELECT * FROM category WHERE id = '$id_categorie'");

$rezultate = mysql_fetch_assoc($select);
$categorie = $rezultate['name'];

//Selectam posturile din aceasta categorie

$select2 = mysql_query("SELECT * FROM posts WHERE category = '$categorie'");

while($afis2 = mysql_fetch_array($select2)){

$titlu = $afis2['title'];
$id = $afis2['id'];
$mesaj = $afis2['post'];
$categorie = $afis2['category'];
$data = $afis2['date'];

echo '<a href="read.php?pid='.$id.'"><h2>'.$titlu.'</h2></a>';

echo '<font color="blue">Categorie: '.$categorie.' Postat pe '.$data.'';
echo "<br/>";
echo "<br/>";
echo '<font color="black" size="5">'.$mesaj.'</font>';
echo "<br/>";
echo "<br/>";
echo "<br/>";
}
?>
Dar nu merge.... Ii poate spune cineva de ce si cum as putea face sa mearga? Multumesc mult!

Select in MySQL in functie de alt Select

Scris: Dum Noi 20, 2011
de MarPlo
Incearca cu o singura interogare care sa aibe doua select:

Cod: Selectaţi tot

"SELECT * FROM posts WHERE category = '(SELECT `name` FROM category WHERE id = $id_categorie LIMIT 1)'"
Daca da eroare, incearca sa stergi ghilimelele simple ce incadreaza parantezele cu al doilea SELECT.

Daca tot nu merge, verifica cu echo $select; (si al doilea) sa vezi daca transmite la mysql ce trebuie.

Select in MySQL in functie de alt Select

Scris: Dum Noi 20, 2011
de claUdiu
La codul tau nu mi-a aratat nimic pe pagina, la fel si cand am facut echo. Dar, am gasit problema: eu am tabelul categories in db, nu category... Se pare ca m-am incurcat rau de tot... Scuze de timp pierdut cu mine:).