Array id's zoeken in db
ik heb een array met id's uit een tabel, nu wil ik de gegevens die bij de rij'en horen met die id's uit de database halen, met een SELECT query. Maar, hoe deo ik dat met aan array?
Dus, ik heb een array met de waardes 5, 67, 90, 138, en dan wil ik de uit de database halen mbv SELECT * FROM table WHERE id=5, id=67, id=90, enz..
Zal vast heel simpel zijn :P
Als ik het goed begrijp haal je eerst de id's uit de database, en daarna wil je de overige gegevens van die rij ophalen? Waarom haal je niet alles in één keer uit de database?
in plaats van de komma een OR waarschijnlijk
Wat dacht je van een JOIN ofzo? Dat scheelt iig weer één query.
ik haal op de ene pagina id's uit de database, of nou ja, je kunt selecteren mbw checkboxes.
@Tommy
Wat heb ik aan een join is zo een situatie? Het komt allemaal uit 1 tabel nl.
@Scrptr
met de komma's werkt wel, maar hoe tover ik
0 => 5
1 => 67
e.d. om naar id=5, id=67
Dus bijv. $conditions = implode(", id=", $_POST['array_met_ids']);
en dan mysql_query("SELECT * FROM tabel WHERE ".$conditions);
maar het probleem is, dat het eerste nummer van $conditions gaan id= heeft..
Snap je?
Gewijzigd op 01/01/1970 01:00:00 door Sven
Je kan de array op simpele wijze imploden om het in de IN() te kunnen plaatsen.....
Nooit van gehoord? Hoe werkt het? Kan het nl. niet vinden in de reference manual van mysql..
Code (php)
Dus:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$array = array('8','6','9');
$ids = 'id='.implode(', id =', $array);
mysql_query("SELECT * FROM table WHERE ".$ids."");
?>
$array = array('8','6','9');
$ids = 'id='.implode(', id =', $array);
mysql_query("SELECT * FROM table WHERE ".$ids."");
?>
Bedankt, ik ga het proberen! Stom dat ik daar zelf niet aan had gedacht.. :P
@Tommy
Had ik al geprobeerd, maar met implode lukt het ook ;)
Edit:
Vreemd, ik krijg deze error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' id=60, id=63, id=66 ORDER BY name ASC' at line 1
op regel 1 staat alleen < ?php, verder niks, de regels met de query e.d. zijn:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$conditions = "id=".implode(", id=", $_POST['land']);
$res = mysql_query("SELECT * FROM landinfo WHERE ".$conditions." ORDER BY name ASC");
while($db = mysql_fetch_array($res)) {
?>
$conditions = "id=".implode(", id=", $_POST['land']);
$res = mysql_query("SELECT * FROM landinfo WHERE ".$conditions." ORDER BY name ASC");
while($db = mysql_fetch_array($res)) {
?>
Gewijzigd op 01/01/1970 01:00:00 door Sven
Sorry, bump, maar, ik wil heel graag het antwoord vanavond nog hebben.. :)
waarschijnlijk kan id=0, id=8, id=7 etc niet
$res = mysql_query("SELECT * FROM landinfo WHERE id IN(".$conditions.") ORDER BY name ASC");
while($db = mysql_fetch_array($res)) {
Maar bedankt, het werkt!