Ich habe 3 Abfragen, die ich ausführen, die fast identisch sind, die letzten beiden haben eine AND
Bedingung.Hinzufügen Bedingung für MySQL Abfrage und holen wieder
Haupt query:
$mess = $mysqli->prepare("SELECT * from (SELECT cm.id ,cm.userid,cm.message,cm.voteup,cm.votedown,cm.date
FROM chat_messages cm
INNER JOIN members m ON m.id =cm.userid
INNER JOIN chat_settings cs ON cs.id = cm.room_id
WHERE cm.setting_id = ?
ORDER BY cm.date DESC LIMIT 30) ddd
ORDER BY date ASC ");
$mess->bind_param("i", $room);
$mess->execute();
$mess->store_result();
$mess->bind_result($chatid,$chat_userid,$message,$voteup,$votedown,$date);
while($row = $mess->fetch()){
//im fetching here in my <div class='div1' >
}
Dann in den zweiten div
Ich habe eine AND
Bedingung hinzuzufügen:
$mess2 = $mysqli->prepare("SELECT * from (SELECT cm.id ,cm.userid,cm.message,cm.voteup,cm.votedown,cm.date
FROM chat_messages cm
INNER JOIN members m ON m.id =cm.userid
INNER JOIN chat_settings cs ON cs.id = cm.room_id
WHERE cm.setting_id = ? AND voteup - votedown >= 5
ORDER BY cm.date DESC LIMIT 30) ddd
ORDER BY date ASC ");
$mess2->bind_param("i", $room);
$mess2->execute();
$mess2->store_result();
$mess2->bind_result($chatid,$chat_userid,$message,$voteup,$votedown,$date);
while($row2 = $mess2->fetch()){
//im fetching here in my <div class='div2' >
}
schließlich in den dritten div
habe ich einen etwas anderen AND
Zustand:
$mess3 = $mysqli->prepare("SELECT * from (SELECT cm.id ,cm.userid,cm.message,cm.voteup,cm.votedown,cm.date
FROM chat_messages cm
INNER JOIN members m ON m.id =cm.userid
INNER JOIN chat_settings cs ON cs.id = cm.room_id
WHERE cm.setting_id = ? AND votedown - voteup >= 5
ORDER BY cm.date DESC LIMIT 30) ddd
ORDER BY date ASC ");
$mess3->bind_param("i", $room);
$mess3->execute();
$mess3->store_result();
$mess3->bind_result($chatid,$chat_userid,$message,$voteup,$votedown,$date);
while($row3 = $mess3->fetch()){
//im fetching here in my <div class='div3' >
}
E Alles funktioniert ABER tun diese fast gleiche Abfrage scheint plump. Ist es möglich, dasselbe mit nur einer Abfrage zu konstruieren? Ich habe $mess->data_seek(0);
verwendet, aber es hilft nicht, weil ich meine Bedingung der Abfrage nicht hinzugefügt habe.
Was ist mit dir sammeln die größere Menge, und dann reduzieren Sie es mit PHP und die Spalten, die Sie haben? –
Sie können filtern, um zu wissen, welche Zeile in der entsprechenden Div einfügen PhP, mit Ihrer einzigen Abfrage (die dritte). –
@JulienLachal dies kann passieren, wenn ich in einem Div holen, aber sie sind 3 verschiedene Divs. UND auch anderes Problem, in der ersten Frage habe ich Grenze 30. so, wenn ich die ersten vielen Daten laufen lasse, die im zweiten Div kommen sollen, komme nicht. nur wenn ich diese AND Bedingung setze, die genau diese und die Grenze auf 30 bringt. –