login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Eerste letter van waarde

Offline kenzo - 06/02/2008 12:12 (laatste wijziging 06/02/2008 12:13)
Avatar van kenzoPHP beginner Hallo,

hoe kan ik van een waarde in de database de eerste letter kiezen?


Met substr geeft hij de volgende fout aan:


  1. Warning: Wrong parameter count for substr() in /home/shamrock/public_html/paginas/merken.php on line 8
  2.  
  3.  
  4. Warning: Wrong parameter count for substr() in /home/shamrock/public_html/paginas/merken.php on line 8
  5.  
  6.  
  7. Warning: Wrong parameter count for substr() in /home/shamrock/public_html/pagin....



Ik wil namelijk een lijst per letter van het alfabet, maar ook alleen waar de letter bestaat. Als geen waarde begint met een C moet hij die ook niet laten zien dan.


Bedankt!



owja, dit is mijn code:

  1. <?PHP
  2.  
  3. $merken = mysql_query("SELECT * from cms_merken WHERE huismerk!='x' ORDER by merk ASC")or die(mysql_error());
  4. while ($merkenl = mysql_fetch_assoc($merken)) {
  5.  
  6.  
  7.  
  8. echo "".substr($merkenl['merk'])."<br>";
  9.  
  10. }
  11.  
  12. ?>

5 antwoorden

Gesponsorde links
Offline Martijn1989 - 06/02/2008 12:15 (laatste wijziging 06/02/2008 12:15)
Avatar van Martijn1989 PHP ver gevorderde
  1. <?php echo $merkenl['merk']{0} ."<br>"; ?>


Zo kan het ook ;)

Offline kenzo - 06/02/2008 12:24 (laatste wijziging 06/02/2008 12:24)
Avatar van kenzo PHP beginner dankjewel, maar hoe kan ik nu de waardes selecteren waar hij begint met de letter die ik hier heb verkregen:

<?php echo $merkenl['merk']{0} ."<br>"; ?>


ik heb dit, maar dat werkt niet:

  1. <?PHP
  2.  
  3. $merken = mysql_query("SELECT * from cms_merken WHERE huismerk!='x' ORDER by merk ASC")or die(mysql_error());
  4. while ($merkenl = mysql_fetch_assoc($merken)) {
  5.  
  6.  
  7.  
  8. $letter = "".$merkenl['merk']{0}."";
  9.  
  10. $merken2 = mysql_query('SELECT * FROM cms_merken WHERE merk LIKE '.$letter.'%')or die(mysql_error());
  11. while ($merken3 = mysql_fetch_assoc($merken2)) {
  12. echo "".$merken3['merk']."<BR>";
  13.  
  14. }
  15. }
  16.  
  17. ?>




error:

  1. 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 '' at line 1
Offline kickasgamer - 06/02/2008 12:25
Avatar van kickasgamer PHP ver gevorderde moet het niet dit zijn ?

  1. $merkenl['merk'][0]
geen {} maar []
Offline kenzo - 06/02/2008 12:28 (laatste wijziging 06/02/2008 12:32)
Avatar van kenzo PHP beginner {} werkt,

[] misschien ook, maar de fout ligt ergens anders...

bij het 2e gedeelte waar hij waardes moet zoeken bij die beginletter



/////////////////////////////


Dit werkt, maar hij geeft gewoon alle waardes onder elkaar.


hoe kan ik nou maken dat er een letter a staat, en daaronder alles wat begint met een letter a. Dat ook bij B t'm Z?



  1. <?PHP
  2.  
  3. $merken = mysql_query("SELECT * from cms_merken WHERE huismerk!='x' ORDER by merk ASC")or die(mysql_error());
  4. while ($merkenl = mysql_fetch_assoc($merken)) {
  5.  
  6.  
  7.  
  8. $letter = "".$merkenl['merk'][0]."";
  9.  
  10. $merken2 = mysql_query("SELECT * FROM cms_merken WHERE merk LIKE '".$letter."%'")or die(mysql_error());
  11. while ($merken3 = mysql_fetch_assoc($merken2)) {
  12. echo "".$merken3['merk']."<BR>";
  13.  
  14. }
  15. }
  16.  
  17. ?>
Offline Martijn1989 - 06/02/2008 13:02 (laatste wijziging 06/02/2008 13:02)
Avatar van Martijn1989 PHP ver gevorderde @ kickasgamer : http://www.php.net/substr

  1. <?php
  2. // Met gebruik van accolades kan het ook:
  3. $string = 'abcdef';
  4. echo $string{0}; // geeft a
  5. ?>


Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.251s