Problema unire rezultate din doua Select

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
adrian_ady
Mesaje:80

Problema unire rezultate din doua Select

Salut,
in site am doua categorii de anunturi: cereri si oferte. In aceeasi pagina sunt afisate ultimele anunturi din fiecare categorie insa separat. Cum fac sa afisez intr-o singura caseta ultimele anunturi combinate, de exemplu primul anunt afisat sa fie ultimul adaugat indiferent de categorie.
Am incercat asa dar, evident, se afiseaza mereu separat:

Cod: Selectaţi tot

$entries1 = $db->select("SELECT * FROM oferte WHERE ...... ORDER BY data_adaugare desc LIMIT 0,2 ");
$entries2 = $db->select("SELECT * FROM cereri WHERE ...... ORDER BY data_adaugare desc LIMIT 0,2 ");
$result = array_merge_recursive($entries1, $entries2);
if(!$result)
{
<p>Nu sunt cereri adaugate</p>
}
else
{
$fields = array('id','titlu','descriere','id_categorie','id_judet','data_adaugare','status');
?>
<?
foreach($entries1 as $key=>$entry1)
    {                
    foreach($fields as $field)    $$field = stripslashes($entry1->$field);
      // ...
        ?>
        <div>....oferte...</div>
        <?
    }
?>
<?
foreach($entries2 as $key=>$entry2)
    {                
    foreach($fields as $field)    $$field = stripslashes($entry2->$field);    
      // ...
        ?>
        <div>....cereri...</div>
        <?
    }
?>
<?
}

MarPlo Mesaje:4343
Salut
Poate ca ar trebui sa aplici un singur set de foreach() la datele din variabila $result (obtinute cu array_merge_recursive() ).
Sau faci un singur Select pe ambele tabele:

Cod: Selectaţi tot

$entries = $db->select("SELECT cereri.id AS ci, oferte.id AS oi, cereri.titlu AS ct, oferte.titlu AS ot, ... FROM cereri, oferte WHERE ...... ORDER BY data_adaugare desc LIMIT 0,2 "); 
Sau poti folosi UNION.

Cod: Selectaţi tot

$sql = "(SELECT * FROM oferte WHERE ...)
UNION
(SELECT * FROM cereri WHERE ...)
ORDER BY data_adaugare desc LIMIT 0,2 ";
$entries = $db->select($sql); 

adrian_ady Mesaje:80
Multumesc pentru ajutor. Le-am incercat pe toate, fara succes (nu ma pricep). Am ales pana la urma sa modific baza de date si tot sirul de schimbari necesare in site pentru a lucra numai cu un tabel.
O zi buna!

Subiecte similare