so habe ich derzeit eine Datenbanktabelle, wo ich versuche, alle Datensätze auswählen, mit Ausnahme von denen, die in einem Array, die ich gemacht habe enthalten sind. Wie einiger Hintergrundkontext:MySQL, PHP: Wählen Sie * aus der Tabelle, wo ID nicht in Array ist
Die Struktur der Datenbanktabelle in Frage:
server_status:
id int(11)
server_id int(11)
time_checked datetime
status char(1)
Mein PHP-Skript, um die Daten in den Hash sieht wie folgt zu erhalten:
$sql2 = "SELECT server_id, time_checked,id from server_status where time_checked<'$date' order by server_id;";
$result2=$conn->query($sql2);
while($row2 = $result2->fetch_assoc()){
$server_id = $row2['server_id'];
$id = $row2['id'];
$dt = $row2['time_checked'];
$year = substr($dt,0,4);
$month = substr($dt,5,2);
$day = substr($dt,8,2);
$day = "$year-$month-$day";
$all[$server_id][$day] = $id; // ARRAY
}
Also, was ich Ich versuche, eine MySQL-Abfrage zu erstellen, die die IDs ($ ID) aus dem Array einliest und * APART daraus auswählt. Wenn ich nachdenke, scheint es, als müsste ich eine "where not" -Klausel verwenden, aber ich weiß nicht, wie ich auf den Hash-Code verweisen soll.
weitere Klarstellung: ich jetzt ein Array haben, die Daten extrahiert, die wie folgt aussieht:
1{
2016-05-05 : 252
2016-05-10 : 406
2016-04-27 : 141
2016-05-04 : 164
2016-05-09 : 263
2016-05-03 : 153
2016-04-26 : 131
2016-04-14 : 1
2016-04-18 : 31
2016-04-21 : 111
2016-04-20 : 61
2016-04-19 : 51
2016-04-15 : 21
2016-04-25 : 121
}
2{
2016-05-10 : 452
2016-05-05 : 198
2016-05-09 : 264
2016-05-04 : 165
2016-04-26 : 132
2016-04-27 : 143
2016-04-25 : 122
2016-04-21 : 112
2016-05-03 : 154
}
ich die IDs aus diesem Array (zB 154) zu übernehmen wollen und alles in der Tabelle auswählen, die nicht der Fall ist habe eine der oben genannten IDs. Ich hoffe das hilft zu klären ?!
Jede Hilfe wird sehr geschätzt!
Wie nennt man * Hash *? – Alex
'$ all [$ server_id] [$ day] = $ id;' tut mir leid, ich glaube, ich benutze die Terminologie meines Chefs! : P in PHP kann es als ein mehrdimensionales Array bekannt sein? Aber ich dachte, dass es durch seine eckigen Klammern als Hash erkannt wurde. – dplatt
?? Es gibt kein Hash. und mit dieser Erklärung wurde Ihr Ziel noch unklar – Alex