Beste mensen, ik kom niet uit een probleem. Ik heb onderstaande testscript. Dit script is niet goed, maar even om te testen.
Daar middel van checkboxen kunnen mensen faciliteit_id's aanvinken, deze worden gepost (als www.blabla.nl/zoek.php?faciliteit_id%5B%5D=10&faciliteit_id%5B%5 D=44
In de database staat het als volgt:
numfac_id - fac_id - id
6000 - 10 - 1
6001 - 44 - 1
6002 - 10 - 2
Nu wil ik het id waar fac_id is 10 & 44, in dit voorbeeld dus id 1 (en ook niet id 2 omdat daar fac_id 44 niet is).PHP Code:
if(isset($_GET["faciliteit_id"]) && $_GET["faciliteit_id"] != "0") {
$faciliteit_id = $_GET["faciliteit_id"];
if($faciliteit_id != '0'){
$fac_id = " WHERE fac_id IN (" . implode (',', $_GET['faciliteit_id']) . ")";
}
$sql = mysql_query("SELECT id FROM faciliteiten $fac_id ;");
if(mysql_num_rows($sql)) {
while($row = mysql_fetch_array($sql)) {
foreach($row as $key=>$value) {
$$key = stripslashes($value);
}
echo " $id <br />";
}
}
Kan dat zo: WHERE fac_id IN (" . implode (',', $_GET['faciliteit_id']) .) ?
- meerdere variabelen uit url
-
06-09-2009, 20:13 #1
- Berichten
- 419
- Lid sinds
- 16 Jaar
meerdere variabelen uit url
-
In de schijnwerper
Autoriteit links aangeboden | Hoge DR & DA + Duizenden bezoekers. Alle NICHES vrijwelOverige deals3 DO FOLLOW links op startpaginaLinkpartnersSenior Designster - top kwaliteit - 16 uur per week - per maand - 350 euroFreelance / WerkWebsitedown.nl - Controleren of jou of andere websites online of offline zijnWebsite te koop -
06-09-2009, 21:17 #2
- Berichten
- 492
- Lid sinds
- 16 Jaar
Ik snap niet precies wat je bedoelt.
maar waarom gebruik je 2 x
if($faciliteit_id != '0'){
als je het de eerste keer hebt gecontroleert en 3 regels later nog een keer dan gaat die echt niet veranderen(in dit script)
-
06-09-2009, 23:19 #3
- Berichten
- 750
- Lid sinds
- 15 Jaar
Wat jij probeert kan nooit werken aangezien de de tweede faciliteit_id de eerste overschrijft.
Wat het makkelijkste is en ook nog een veiligere manier is om je formulier met post te verzenden.
En bij de inputs in de name attribuut een array aanmaken, zie onderstaande code
Code:<form action="" method="post"> <input type="checkbox" name="faciliteit_id[]" value="1" />1 <br /> <input type="checkbox" name="faciliteit_id[]" value="2" />2 <br /> <input type="submit" value="verzenden" /> </form>
Nog handiger is om door middel van een for of foreach lus door de gegevens array te gaan.
-
07-09-2009, 14:40 #4
- Berichten
- 419
- Lid sinds
- 16 Jaar
Iemand die me mischien een beetje opweg kan helpen met bovenstaande tips van Raymond?
-
07-09-2009, 15:39 #5
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Raymond heeft je al goed op weg geholpen. Begin eens (zoals Raymond duidelijk suggereert) met het gebruiken van $_POST i.p.v. $_GET. $_GET gebruiken we alleen in vreemde gevallen waarbij het noodzakelijk is via een url te werken (komt haast nooit voor). $_POST gebruiken we dus standaard bij ieder formulier. Wanneer je dit veranderd pas je een big improvement toe aan je web vaardigheden.
-
07-09-2009, 18:03 #6
- Berichten
- 419
- Lid sinds
- 16 Jaar
IK heb het formulier ook als:
<input type="checkbox" name="faciliteit_id[]" value="17">
Ik pas het formulier aan naar $_POST.
Wat wordt er bedoelt met ['DE INDEX'] in: $_POST['faciliteit_id']['DE INDEX']
En om uit de database te halen zoiets:?
Code:$ee = 0; if(isset($_GET['faciliteit_id']) && $_GET['faciliteit_id'] != "0") { $ff = count($_GET['faciliteit_id']); } else { $ff = 0; } while ($ee < $ff) { if(isset($faciliteit_id[$ee]) AND $faciliteit_id[$ee] != "") { $query4 = mysql_query("SELECT * FROM hotel_faciliteiten WHERE fac_id = '$faciliteit_id[$ee]'",$link) or mooie_mysql_error($_SERVER['PHP_SELF']); $catjoin = "AND fac.hotel_id = a.hotel_id"; $catget = ",hotel_faciliteiten AS fac"; $zoek .= " AND fac.fac_id = '$faciliteit_id[$ee]' "; } $ee++; }
-
07-09-2009, 19:18 #7
- Berichten
- 750
- Lid sinds
- 15 Jaar
Ik bedoel met die index de plek van de array wanneer je post zal de faciliteit_id eigenlijk een array wezen met waardes.
De eerste checkbox heeft als index in de array de waarde 0
Dus $_POST['faciliteit_id'][0];
De tweede heeft $_POST['faciliteit_id'][1]; enzovoorts
kun je hier http://nl.php.net/manual/en/function.array.php nog eens rustig nalezen.
Hier kun je foreach http://nl.php.net/manual/en/control-...es.foreach.php nalezen hou de rekening mee dat je host minimaal php4 moet draaien waarschijnlijk draait wel php5.
Mocht je er dan nog niet uitkomen post hier je vraag dan maar
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic