[PHP/MYSQL] waardes worden niet getoont

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ultimatia
  • Registratie: November 2007
  • Laatst online: 22-06 22:00
(probleem inmiddels opgelost, dank hiervoor)
Hallo,

Ik zit met een probleemje. De waardes uit sql worden wel uit gelezen door php, maar niet getoont op mijn beeldscherm. Bij mijn zoekscript wordt de tabel bijvoorbeeld wel aangemaakt, maar worden de resultaten niet getoont.

Zelfs het volgende simpele script geeft een leeg scherm weer.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    $db = mysql_connect ("localhost", "root", "")
    or die ("Kan niet verbinden: " . mysql_error());
    mysql_select_db ("administratie", $db);
    $sql = "SELECT * FROM cd";
    $resultaat = mysql_query($sql); // voer sql code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        echo $rij["cd_id"]."<br>";
        echo $rij["titel"]."<br>";
        echo $rij["artiest"]."<br>";
        echo $rij["verschijningsjaar"]."<br>";
        }
mysql_close ($db);
?>


Ik kan wel gewoon via een formulier waardes invoeren en dergelijke, alleen het publiciteren van deze gegevens wil niet.

Heeft iemand enig idee waar dit aan ligt?

Alvast bedankt!!

Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Kan de database geselecteerd worden? Heeft $resultaat ook daadwerkelijk een resultaat? Worden de <br>'s wel geprint? Check daar eens op. ;)

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 19-09 13:37
hier stond onzin :X

[ Voor 98% gewijzigd door Spinal op 06-03-2009 18:45 ]

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • ultimatia
  • Registratie: November 2007
  • Laatst online: 22-06 22:00
AlainS schreef op vrijdag 06 maart 2009 @ 18:25:
Kan de database geselecteerd worden? Heeft $resultaat ook daadwerkelijk een resultaat? Worden de <br>'s wel geprint? Check daar eens op. ;)
$resultaat bevat de waardes uit de tabel CD, die de velden CD_ID, titel, artiest en verschijningsjaar bevatten. De betreffende tabel zijn verschillende waardes ingevoerd en is dus niet leeg.

De <br>`s worden wel geprint als ik ipv de variabele normale woorden in het script zet.

Hier heeft het volgens mij dus niet mee te maken.

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

wat als je nu de cijfers gebruikt ipv veldnamen.
Dus het eerste veld in je tabel heeft cijfer 0, het 2de veld heeft cijfer 1 enz...

Wat ik meestal doe is kijken wat er in de array staat met print_r:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
    $db = mysql_connect ("localhost", "root", "")
    or die ("Kan niet verbinden: " . mysql_error());
    mysql_select_db ("administratie", $db);
    $sql = "SELECT * FROM cd";
    $resultaat = mysql_query($sql); // voer sql code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        print_r ($rij);
        }
mysql_close ($db);
?>

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • _Sunnyboy_
  • Registratie: Januari 2003
  • Laatst online: 19-09 14:58

_Sunnyboy_

Mooooooooooooooooo!

doe eens var_dump($rij); binnen die while loop dan kan je tenminste zien wat er echt in die $rij zit (inplaats van aannemen dat het goed gaat)

Vrij basic debuggen btw

edit: var_dump, print_r. Kan je in dit verband allebei gebruiken :)

[ Voor 17% gewijzigd door _Sunnyboy_ op 06-03-2009 18:53 ]

Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life


Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
ultimatia schreef op vrijdag 06 maart 2009 @ 18:46:
De <br>`s worden wel geprint als ik ipv de variabele normale woorden in het script zet.
Kun je uitleggen welke variabele je bedoeld en hoe je 'normale' woorden in het script zet?

Daarnaast: Check je in je script nu of de database geselecteerd kon worden en of $resultaat ongelijk is aan false? Kun je eens een print_r doen op $rij?

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • ultimatia
  • Registratie: November 2007
  • Laatst online: 22-06 22:00
Fastex schreef op vrijdag 06 maart 2009 @ 18:51:
wat als je nu de cijfers gebruikt ipv veldnamen.
Dus het eerste veld in je tabel heeft cijfer 0, het 2de veld heeft cijfer 1 enz...

Wat ik meestal doe is kijken wat er in de array staat met print_r:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
    $db = mysql_connect ("localhost", "root", "")
    or die ("Kan niet verbinden: " . mysql_error());
    mysql_select_db ("administratie", $db);
    $sql = "SELECT * FROM cd";
    $resultaat = mysql_query($sql); // voer sql code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        print_r ($rij);
        }
mysql_close ($db);
?>
Hartelijk dank hiervoor!!
De array bevat idd wel alle waardes.

Waneer ik de woorden verander in cijfers komen de resultaten inderdaad op het scherm.
Iemand enig idee waardoor het komt dat het niet met de woorden wil? :p

Groeten Ult

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Welke key's gebruik je? Het zou natuurlijk best kunnen dat de key's hoofdletter gevoelig zijn.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Brantje
  • Registratie: Juli 2004
  • Laatst online: 03-09 19:13

Brantje

De post is daar >>

probeer eens zoiets:
$rij['cd_id'] , ik ben niet zoweg van double quotes gebruiken kwa veldnamen ;)

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Fastex schreef op vrijdag 06 maart 2009 @ 18:51:
wat als je nu de cijfers gebruikt ipv velden.
Dus het eerste veld in je tabel heeft cijfer 0, het 2de veld heeft cijfer 1 enz...
Dat gaat je niet helpen...
array mysql_fetch_array ( resource $result [, int $result_type= MYSQL_BOTH ] )
De code die we van de TS hebben is absoluut niet genoeg om iets zinnigs te zeggen. Ik kan de TS slechts aanraden om één voor één alle variabelen te controleren met functies zoals var_dump.

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

@ult:

Ik gebruik zelf altijd de cijfers. Op die manier kan je de veldnamen aanpassen mocht dat nodig zijn zonder dat je scripts gelijk "kapot" zijn...

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Beetje debuggen mag ook wél..:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$db = mysql_connect ("localhost", "root", "")
     or die ("Kan niet verbinden: " . mysql_error());
mysql_select_db ("administratie", $db) 
     or die(mysql_error());
$sql = "SELECT * FROM cd";
$resultaat = mysql_query($sql) 
     or die(mysql_error());

if (mysql_num_rows($resultaat) > 0) {
     while ($rij = mysql_fetch_array($resultaat)) {
        echo $rij["cd_id"]."<br>";
        echo $rij["titel"]."<br>";
        echo $rij["artiest"]."<br>";
        echo $rij["verschijningsjaar"]."<br>";
     }
} else {
     echo "geen rows";
}
mysql_close ($db);
?>

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 21:26
Fastex schreef op vrijdag 06 maart 2009 @ 19:02:
@ult:

Ik gebruik zelf altijd de cijfers. Op die manier kan je de veldnamen aanpassen mocht dat nodig zijn zonder dat je scripts gelijk "kapot" zijn...
Ja superhandig :? En de queries gaan dan niet kapot?

Ik gebruik mysqli, maar als ik het met deze functie moest doen, dan zou ik het doen met de veldnamen. Dan kun je tenminste de query en de volgorde veranderen zonder dat je script kapot gaat. Het is ook veel overzichtelijk.

Ik vind overigens de optie dat de veldnamen hoofdletters moeten bevatten de meeste plausibele verklaring.

[ Voor 9% gewijzigd door doeternietoe op 06-03-2009 19:07 ]


Acties:
  • 0 Henk 'm!

  • SyphOn
  • Registratie: Juni 2001
  • Laatst online: 20-09 19:18
En met fetch_assoc?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$db = mysql_connect ("localhost", "root", "") or die ("Kan niet verbinden: " . mysql_error());
mysql_select_db ("administratie", $db);
$sql = "SELECT * FROM cd";
$resultaat = mysql_query($sql); // voer sql code uit
foreach(mysql_fetch_assoc($resultaat) as $i => $rij) {
    echo $rij["cd_id"]."<br>";
    echo $rij["titel"]."<br>";
    echo $rij["artiest"]."<br>";
    echo $rij["verschijningsjaar"]."<br>";
}
mysql_close ($db);
?>

Acties:
  • 0 Henk 'm!

  • ultimatia
  • Registratie: November 2007
  • Laatst online: 22-06 22:00
Wat jullie al aan hebben gegeven; hoofdletters in de veldnamen, was de reden waarom het niet werkte.
Ik ben een redelijke beginnende phper en wist niet dat de veldnamen ook hoofdlettergevoelig waren. Dit is dus wel zo.

@ Alain, ik bedoelde de rij uit de array ipv de variabele. Met "normale" woorden bedoelde ik dat ik de $rij heb vervangen voor een woord. Dit om te controleren als de <br> het wel deed.

Nogmaals bedankt iedereen, mijn probleem is opgelost en ik zal voortaan iets beter opletten :p

Acties:
  • 0 Henk 'm!

Verwijderd

while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}


http://nl2.php.net/fr/mysql-fetch-assoc

Het ging om de mysql_fetch_assoc() om namen te kunnen gebruiken i.p.v. nummers.

[ Voor 19% gewijzigd door Verwijderd op 07-03-2009 01:01 . Reden: moest nog inloggen :'( ]


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 19:24

Patriot

Fulltime #whatpulsert

Verwijderd schreef op vrijdag 06 maart 2009 @ 19:15:
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}


http://nl2.php.net/fr/mysql-fetch-assoc
Dat gaat nog niet werken als je de hoofdletters van de velden niet goed hebt. Even alles lezen de volgende keer?

Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 01:02
Verwijderd schreef op vrijdag 06 maart 2009 @ 19:15:
...
Het ging om de mysql_fetch_assoc() om namen te kunnen gebruiken i.p.v. nummers.
Met fetch_array() kun je dus ook namen gebruiken, tenzij je MYSQL_NUM als tweede parameter meegeeft.

@TS: die <br>'s zouden toch sowieso geoutput moeten worden voor elke rij in je resultset; dan is variabelen vervangen door woorden toch veel meer moeite dan even de bron van je pagina bekijken in je browser? En ik zou verwachten dat je toch wel een warning/notice krijgt als je niet bestaande keys gebruikt; misschien error_reporting wat hoger zetten (/display_errors aan). En anders dus goed kijken naar de output van print_r, daar waren die hoofdletters vast wel te zien ;)
Pagina: 1