login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Arrays en Mysql result

Offline BasDV - 05/03/2007 18:43 (laatste wijziging 05/03/2007 19:50)
Avatar van BasDVMySQL interesse Hallo,

Ik heb nu deze code:
  1. <?php
  2. $ophalen = mysql_query ("SELECT * FROM frankmening");
  3. $aantalmeningen = MySQL_Num_Rows($ophalen);
  4.  
  5. $mijnarray = array(1=>"<img border=\"0\" src=\"images/1.png\">", 2=>"<img border=\"0\" src=\"images/2.png\">", 3=>"<img border=\"0\" src=\"images/3.png\">", 4=>"<img border=\"0\" src=\"images/4.png\">", 5=>"<img border=\"0\" src=\"images/5.png\">", 6=>"<img border=\"0\" src=\"images/6.png\">", 7=>"<img border=\"0\" src=\"images/7.png\">", 8=>"<img border=\"0\" src=\"images/8.png\">", 9=>"<img border=\"0\" src=\"images/9.png\">", 0=>"<img border=\"0\" src=\"images/0.png\">");
  6.  
  7. echo "<img border=\"0\" src=\"images/al.png\">";
  8.  
  9. for( $i = 0 ; $i < strlen( $aantalmeningen ) ; $i++ ) {
  10. echo $mijnarray[ $aantalmeningen{$i} ];
  11. }
  12.  
  13. echo "<img border=\"0\" src=\"images/meningen.png\">";
  14. ?>

(Met dank aan de mensen die hier gereageerd hebben op mijn topic )
Maar nu is er het volgende aan de hand.
$aantalmeningen is de result van de mysql query, en daar komt 3 uit als je m echo't.
Als je m in de array hebt gegooid komt er geen afbeelding uit.
Maar als je dit doet:
$aantalmeningen = "3";
En dat in de array laat gooien dan komt er wel 3 uit.
Hoe kan ik dit verhelpen?

Alvast bedankt,
Bas

*EDIT*
Stijn,

Je script doet het prachtig maar ik bedoel dat als ik $aantalmeningen (het mysql resultaat) gebruik (waar 3 uitkomt) laat de array geen afbeeldingen zien.
En als ik dit zeg:
$aantalmeningen = "3"; (dus ipv het mysql resultaat ophalen wat ik wil)
doet hij het wel.

Dus hoe zorg ik ervoor dat het ook met een mysql resultaat werkt.
PS ik heb het nagekeken uit het mysql resultaat komt 3 uit.

6 antwoorden

Gesponsorde links
Offline Stijn - 05/03/2007 18:46
Avatar van Stijn PHP expert doodsimpel. $i begint te tellen van 0 en de key 0 staat niet in je array. Hij start vanaf 1. Ik raar je aan om die key waarden uit je array te halen of je (mijn ) script een beetje aan te passen:

  1. <?php
  2. $ophalen = mysql_query ("SELECT * FROM frankmening");
  3. $aantalmeningen = MySQL_Num_Rows($ophalen);
  4.  
  5. $mijnarray = array(1=>"<img border=\"0\" src=\"images/1.png\">", 2=>"<img border=\"0\" src=\"images/2.png\">", 3=>"<img border=\"0\" src=\"images/3.png\">", 4=>"<img border=\"0\" src=\"images/4.png\">", 5=>"<img border=\"0\" src=\"images/5.png\">", 6=>"<img border=\"0\" src=\"images/6.png\">", 7=>"<img border=\"0\" src=\"images/7.png\">", 8=>"<img border=\"0\" src=\"images/8.png\">", 9=>"<img border=\"0\" src=\"images/9.png\">", 0=>"<img border=\"0\" src=\"images/0.png\">");
  6.  
  7. echo "<img border=\"0\" src=\"images/al.png\">";
  8.  
  9. for( $i = 1 ; $i <= strlen( $aantalmeningen ) ; $i++ ) {
  10. echo $mijnarray[ $aantalmeningen{$i - 1} ];
  11. }
  12.  
  13. echo "<img border=\"0\" src=\"images/meningen.png\">";
  14. ?>


groeten
stijn
Offline BasDV - 05/03/2007 19:50
Avatar van BasDV MySQL interesse Stijn,

Je script doet het prachtig maar ik bedoel dat als ik $aantalmeningen (het mysql resultaat) gebruik (waar 3 uitkomt) laat de array geen afbeeldingen zien.
En als ik dit zeg:
$aantalmeningen = "3"; (dus ipv het mysql resultaat ophalen wat ik wil)
doet hij het wel.

Dus hoe zorg ik ervoor dat het ook met een mysql resultaat werkt.
PS ik heb het nagekeken uit het mysql resultaat komt 3 uit.
Offline Stijn - 06/03/2007 17:30
Avatar van Stijn PHP expert Omdat PHP.net: strlen enkel een string in zijn parameter accepteerd en PHP.net: mysql_num_rows enkel een int returnt doet het niets. Hij zal voor die strlen( $aantalmeningen ) gewoon 0 returnen.

Waarom het werkt door $aantalmeningen = "3"; is omdat alles wat tussen quotes staat in php beschouwd wordt als een string. Je kan dat simpel oplossen hoor.

  1. <?php
  2. $ophalen = mysql_query ("SELECT * FROM frankmening");
  3. $aantalmeningen = MySQL_Num_Rows($ophalen);
  4.  
  5. $mijnarray = array(1=>"<img border=\"0\" src=\"images/1.png\">", 2=>"<img border=\"0\" src=\"images/2.png\">", 3=>"<img border=\"0\" src=\"images/3.png\">", 4=>"<img border=\"0\" src=\"images/4.png\">", 5=>"<img border=\"0\" src=\"images/5.png\">", 6=>"<img border=\"0\" src=\"images/6.png\">", 7=>"<img border=\"0\" src=\"images/7.png\">", 8=>"<img border=\"0\" src=\"images/8.png\">", 9=>"<img border=\"0\" src=\"images/9.png\">", 0=>"<img border=\"0\" src=\"images/0.png\">");
  6.  
  7. echo "<img border=\"0\" src=\"images/al.png\">";
  8.  
  9. for( $i = 1 ; $i <= strlen( (string) $aantalmeningen ) ; $i++ ) {
  10. echo $mijnarray[ $aantalmeningen{$i - 1} ];
  11. }
  12.  
  13. echo "<img border=\"0\" src=\"images/meningen.png\">";
  14. ?>


stijn
Offline Ultimatum - 06/03/2007 18:54
Avatar van Ultimatum PHP expert Op regel 3 haal je het aantal al op met mysql_num_rows en ik op dat moment bevat $aantalmeningen al een interger. Dus ipv nog te gaan tellen met strlen op regel 9 kan je tog ook gewoon $aantalmeningen doen. Dit dus:

for( $i = 1 ; $i <= $aantalmeningen ; $i++ ) {
echo $mijnarray[ $aantalmeningen{$i - 1} ];
}
Offline Stijn - 06/03/2007 19:00
Avatar van Stijn PHP expert jach :/ hij wilt dus als het 321 is dat hij 3 , 2 en 1 apart neemt.
Offline BasDV - 07/03/2007 08:18
Avatar van BasDV MySQL interesse Ik heb gek genoeg nog steeds hetzelfde probleem,
zie hier de pagina:
http://www.basdv.wyger.nl/frank/frank.php

Tussen Al en meningen rechtsboven moeten de meningen worden gepost.

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