vraagje over preg_replace

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis S

Dennis S

11/12/2006 12:12:00
Quote Anchor link
Ik probeer een sql query te maken met meerdere id nummers, dus ik heb deze vanuit de url opgevragen en in een array gestopt.

Als ik de array uitlees dan komt er achter elke OR te staan omdat ik meerdere id nummers wil selecteren uit m'n database.

Wat nu het probleem is dat de laatste OR weg moet, ik probeerde dit met preg_replace() maar dat lukt niet helemaal, ik kan wel alle OR weghalen maar ik wil alleen de laatste weghalen. (zie code hieronder)

Alvast bedankt voor jullie hulp.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php


$exploded
= explode('_',$_GET['id']);

for($i = 0; $i <= 4; $i++){
    
    $feed_sql .= 'feed_id ='. $exploded[$i].' OR ';
    
}


$feed_sql = preg_replace('/OR$/m','',$feed_sql);

?>


de huidige output is:
feed_id =6 OR feed_id =89 OR feed_id =120 OR feed_id =2 OR feed_id =23 OR
 
PHP hulp

PHP hulp

08/05/2021 13:16:23
 
Jan Koehoorn

Jan Koehoorn

11/12/2006 12:20:00
Quote Anchor link
Je kunt het probleem omdraaien: zet er altijd OR voor, behalve als $i gelijk is aan 0.
 
Dennis S

Dennis S

11/12/2006 12:22:00
Quote Anchor link
ach natuurlijk, waarom moeilijk maken als het makkelijk kan
 
Robert Deiman

Robert Deiman

11/12/2006 12:25:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php


$exploded
= explode('_',$_GET['id']);
$number_feeds=count($exploded);

for($i = 0; $i <= $number_feeds; $i++){
    
    $feed_sql .= 'feed_id ='. $exploded[$i];
    if ($i != $number_feeds && $number_feeds > 1){
         $feed_sql .= ' OR ';
         }
    
}


echo $feed_sql;

?>


Volgens mij is dit een slimmer en gemakkelijker oplossing.

Edit:

Is aangepast:
Als er maar 1 feed (id) wordt meegegeven, moet er ook geen OR komen.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Robert Deiman

Robert Deiman

11/12/2006 12:27:00
Quote Anchor link
Jan Koehoorn schreef op 11.12.2006 12:20:
Je kunt het probleem omdraaien: zet er altijd OR voor, behalve als $i gelijk is aan 0.


Is inderdaad ook een goede manier, had ik nog niet gelezen voor mijn post :S
 
Dennis S

Dennis S

11/12/2006 12:33:00
Quote Anchor link
kan ook maar dan moet je alsnog de $number_feeds - 1 doen omdat er wordt geteld vanaf 0.
 
Jos

Jos

11/12/2006 12:49:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$exploded
= explode('_',$_GET['id']);

$imploded = '(' . implode(' ) OR ( ',$exploded) . ')';
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.