2016-05-03 4 views
1

Ich möchte wissen, wie ich Abfrage aus mehr als 1 Tabelle zu zeigen und zu bestellen dann alle durch die Daten und dann auf eine Zahl (wenn ich LIMIT 5 setze, zeige ich nur die zuletzt von Daten 5 hinzugefügte Abfrage aus allen Tabellen nicht die zuletzt 5 von einer der Tabellen, weil ich wie eine Newsbar machen möchte) Ich habe 5 Tabellen (Kategorien) mit die gleiche Struktur (ID, Titel, Beschreibung, Poza, Daten) und ich möchte nur die letzten 5 von allen zeigen.Wie Abfrage aus allen Tabellen (gleiche Struktur) anzeigen und alle nach Daten sortieren

//create connection to mysql 
$db_conx_index = mysqli_connect($servername, $username, $password, $dbname); 
$db_conx_index->set_charset('utf8');// pentru diacritice 
if(!$db_conx_index){ 
die("Connection failed: ". mysqli_connect_error()); 
} 
$catArray = array("istorie", "lifestyle", "sciente", "travel", "nature");  
$slider = ''; 
foreach($catArray as $k=>$v) 
{  
    $sql = "SELECT id, titlu, data, linknews, poza FROM ".$v." WHERE approved='1' ORDER BY data DESC LIMIT 5"; 
    $query = mysqli_query($db_conx_index, $sql); 
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
     $id = $row["id"]; 
     $titlu = $row["titlu"]; 
     $linknews = $row["linknews"]; 
     $poza = $row["poza"]; 
     $slider .= '<a href="/'.$linknews.'"><img src="/images/'.$poza.'-600x.jpg" alt="'.$titlu.'"></a>'; 
    } 
} 
?> 
    <?php echo $slider;?> 
    <?php mysqli_close($db_conx_index);?> 

aber der Code zeigen Sie mir den letzten 5 Abfrage für alle ein Tabellen und Ordnung durcheinander kommt dann die secont Tabellen .. und wollen, ohne nehmen bei der Berechnung der ersten Tabelle bestellen ....

+0

Wenn Sie möchten, sollten Sie im Anschluss an diese einfachen zweistufigen Vorgehensweise: 1. Wenn Sie dies noch nicht getan haben, eine ordnungsgemäße und CREATE-Anweisungen INSERT (und/oder einer sqlfiddle), damit wir leichter replizieren Sie das Problem. 2. Wenn Sie dies noch nicht getan haben, geben Sie eine gewünschte Ergebnismenge ein, die den Informationen in Schritt 1 entspricht. – Strawberry

+2

Wenn ich nicht im Unrecht bin, möchten Sie eine einzige Abfrage auslösen und Daten aus allen 5 Tabellen anstelle von 5 Abfragen abrufen? –

+0

Datenbankstruktur wäre wirklich hilfreich. Und vielleicht möchten Sie sich die UNION-Anweisung in SQL ansehen. – syck

Antwort

0

Vergessen Sie die foreach Schleife.

"SELECT id, titlu, data, linknews, poza FROM istorie, lifestyle, sciente, travel, nature WHERE approved='1' ORDER BY data DESC LIMIT 5" 
Verwandte Themen