Automatisch + laten tonen bij meer results

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ray Mond

Ray Mond

09/08/2022 18:53:25
Quote Anchor link
Goedenavond allen.

Ik heb de volgende code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$sql
= "SELECT * from tijdstippen WHERE `tijd` = '1' ORDER BY naam_id asc";
$return = $db->query($sql );
$i = 0;                
while ($row = $return->fetch_object()){
        
echo ''.$row->naam_id.'';
if ($i % 1 == 0) {
echo " - ";
}
}
?>


In zover werkt dit prima, hij zou nu de id moeten aangeven van de bijbehorende naam wat ook gebeurd...

Enkel is de uitkomst nu 1 - 86 - en ik zou dit graag willen weergeven als 1 - 86

Ik heb natuurlijk wel eerst zelf wat dingen geprobeerd maar die werken niet of half (dan komen de cijfers aan elkaar te staan..

Alvast bedankt!
 
PHP hulp

PHP hulp

05/10/2022 00:14:23
 
Rob Doemaarwat

Rob Doemaarwat

09/08/2022 19:07:05
Quote Anchor link
Keer het om: echo eerst de " - ", en dan het ID. De eerste keer (dat kun je wel makkelijk bijhouden) sla je dan over, en dan staat er wel "1 - 86".
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= "SELECT * from tijdstippen WHERE `tijd` = '1' ORDER BY naam_id asc";
$return = $db->query($sql );
$first = true;

while ($row = $return->fetch_object()){
  if($first) $first = false;
  else echo " - ";

  echo $row->naam_id;
}

?>
 
Ray Mond

Ray Mond

09/08/2022 19:12:33
Quote Anchor link
HELD!!!!

Werkt helemaal geweldig!!! Super dank je!!!

Toevoeging op 09/08/2022 19:30:20:

Hm dan toch nog een vraag..

Als ik het op naam zou doen dan zie je bijvoorbeeld naam1 en naam2 als result komen..

Hoe kan ik dit replacen dat er dan alsnog 1 en 2 komt te staan als het ware? Zo dat we niet nog eens een extra tabel hoeven te maken waar we handmatig 1 en 2 in moeten voeren...

Dus eigenlijk alles voor de cijfers zou moeten verdwijnen, is dit mogelijk?
Gewijzigd op 09/08/2022 19:32:34 door Ray Mond
 
- Ariën  -
Beheerder

- Ariën -

09/08/2022 19:46:24
Quote Anchor link
Je hebt twee velden? Een van de naam, en een met een ID, begrijp ik?
Dan kan je toch met de juiste variabele bepalen wat je wilt tonen?
 
Ray Mond

Ray Mond

09/08/2022 19:54:25
Quote Anchor link
Klopt inderdaad, heb je zeker weten gelijk hoor!

Echter is het bij ons zo als we nu gebruiker naam23 zouden aanmaken dan is het id heel anders dan de 23 achter de naam.

We zouden dus graag iets willen verzinnen op het feit dat naam23 dan getoond gaat worden als 23 en niet als id nummer want dan klopt het niet meer in ons geval.
 
- Ariën  -
Beheerder

- Ariën -

09/08/2022 20:09:25
Quote Anchor link
Je wilt dus detecteren of een string eindigt op een ID?
Dan helpt deze reg-ex er wel bij:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$string
="naam23abc";
//$string="naam23";
$r = preg_match_all("/.*?(\d+)$/", $string, $matches);
print_r($matches);
?>
 
Jan Koehoorn

Jan Koehoorn

10/08/2022 20:14:34
Quote Anchor link
Rob Doemaarwat op 09/08/2022 19:07:05:
Keer het om: echo eerst de " - ", en dan het ID. De eerste keer (dat kun je wel makkelijk bijhouden) sla je dan over, en dan staat er wel "1 - 86".
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
= "SELECT * from tijdstippen WHERE `tijd` = '1' ORDER BY naam_id asc";
$return = $db->query($sql );
$first = true;

while ($row = $return->fetch_object()){
  if($first) $first = false;
  else echo " - ";

  echo $row->naam_id;
}

?>


Werkt, maar kan korter. Ik doe dit soort dingen altijd zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$ids = range(10, 20);
echo implode(' - ', $ids);
Gewijzigd op 10/08/2022 20:15:15 door Jan Koehoorn
 
Ray Mond

Ray Mond

11/08/2022 16:56:31
Quote Anchor link
Ik heb toch maar een extra veld bijgemaakt en die vervolgens laten oproepen, samengevoegd met de code wat hier staat en alles werkt perfect! Dank allen!
 



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.