login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Twee strings met elkaar vergelijken (Opgelost)

Offline Martijn2008 - 20/09/2009 00:27 (laatste wijziging 20/09/2009 12:16)
Avatar van Martijn2008PHP beginner Hallo allemaal,

Ik heb de volgende 2 strings. Graag wil aantonen dat ze een verband met elkaar hebben, namelijk `Den Haag`. String 1 stelt een plaatsnaam in mijn MySQL database voor en string 2 een fotoalbum op de server. Een directory dus.

  1. <?php
  2.  
  3. $str1 = "Rotterdam";
  4. $str2 = "1. Rotterdam Erasmusbrug 20 september 2009";
  5.  
  6. ?>


Bedankt alvast voor jullie hulp.

Martijn

12 antwoorden

Gesponsorde links
Offline vinTage - 20/09/2009 02:00 (laatste wijziging 20/09/2009 02:02)
Avatar van vinTage Nieuw lid Met PHP.net: strpos is dit wel te doen denk ik.
Offline nemesiskoen - 20/09/2009 15:24
Avatar van nemesiskoen Gouden medaille

PHP expert
Den Haag? Ik volg niet...

kan je niet gewoon een regeltje in een tabel hebben met
plaatsnaam - albumnaam (pk) - albumlocatie - albumbeschrijving

Offline Martijn - 20/09/2009 18:37
Avatar van Martijn Crew PHP ik zou dr een array van maken:
  1. $array['rotterdam'] = "1. rotterdam 1 sdf jkh ";
  2.  
  3. echo $array[$tr1];
Offline SamD - 20/09/2009 19:24
Avatar van SamD Nieuw lid met strstr() kan je nakijken of string1 voorkomt in string 2

http://us3.php.net/manual/en/function.strstr.php
Offline Martijn2008 - 21/09/2009 23:06
Avatar van Martijn2008 PHP beginner Ik heb een functie geschreven. Als resultaat krijg ik bij alles `niet gevonden`. Doe ik soms iets niet goed?

  1. <?php
  2.  
  3. function findLocation($strValue)
  4. {
  5. $q = "SELECT * FROM locations ORDER BY naam ASC";
  6. $r = mysql_query($q) or die(mysql_error());
  7. $c = mysql_num_rows($r);
  8. if($c == 0)
  9. {
  10. echo 'Geen locaties in database';
  11. }
  12. else
  13. {
  14. while($sql = mysql_fetch_assoc($r))
  15. {
  16. $mystring = $strValue;
  17. $findme = $sql['naam'];
  18.  
  19. $pos = strpos($mystring, $findme);
  20.  
  21. if ($pos === true)
  22. {
  23. $strLocName = $sql['naam'];
  24. $bFound = true;
  25. }
  26. }
  27.  
  28. if($bFound == true)
  29. {
  30. return $strLocName;
  31. }
  32. else
  33. {
  34. return 'niet gevonden';
  35. }
  36. }
  37. }
  38.  
  39. ?>
Offline Wave6 - 22/09/2009 12:55
Avatar van Wave6 PHP beginner http://www.php.net/substr
Offline Martijn - 22/09/2009 19:22
Avatar van Martijn Crew PHP nou, basic debuggen.wat is de waarde van $pos, wat is $mystring/$findme, als dat goed is, wat is $bFound,
Offline Martijn2008 - 22/09/2009 20:44
Avatar van Martijn2008 PHP beginner
  1. <?php
  2.  
  3. $mystring = strtolower("1. Rotterdam Erasmusbrug 20 september 2009");
  4. $findme = strtolower("Rotterdam");
  5.  
  6. $pos = strpos($mystring, $findme);
  7.  
  8. if ($pos === true)
  9. {
  10. echo 'Gevonden';
  11. }
  12. else
  13. {
  14. echo 'Niet gevonden';
  15. }
  16.  
  17. ?>


Op bovenstaande code krijg ik als resultaat `niet gevonden`.
Offline vinTage - 22/09/2009 21:00
Avatar van vinTage Nieuw lid Met het vb wat je vind op php.net werkt het wel.

  1. <?php
  2. $mystring = '1. Rotterdam Erasmusbrug 20 september 2009';
  3. $findme = 'Rotterdam';
  4. $pos = strpos($mystring, $findme);
  5.  
  6. // Note our use of ===. Simply == would not work as expected
  7. // because the position of 'a' was the 0th (first) character.
  8. if ($pos === false) {
  9. echo "The string '$findme' was not found in the string '$mystring'";
  10. } else {
  11. echo "The string '$findme' was found in the string '$mystring'";
  12. echo " and exists at position $pos";
  13. }
  14. ?>


Geen zin om te checken waar jij fout gaat, maar een codevoorbeeld wat op php.net staat is meestal we lte vertrouwen 
Offline Martijn2008 - 22/09/2009 21:55
Avatar van Martijn2008 PHP beginner Thanks voor de tip, het werkt nu. Ik vraag me alleen af waarom mijn vorige opzet niet werkt?  
Offline Koen - 22/09/2009 22:36
Avatar van Koen PHP expert strpos retourneert zoals de functie zelf al zegt de positie van een string. Elk getal buiten 0 wordt gezien als een waarde "true", 0 wordt gezien als "false". Wanneer je echter gaat vergelijken met drie gelijkheidstekens ga je ook controleren op type, en een integer is natuurlijk niet gelijk aan een boolean 
Offline vinTage - 23/09/2009 00:14 (laatste wijziging 23/09/2009 00:15)
Avatar van vinTage Nieuw lid in zn laatse voorbeeld checkte hij op true/false, dus waarom Koen nu ineens de "oplossing" bied is mij onduidelijk ?
Daarbij was strpos al in post EEN vernoemt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s