[PHP] Krijg geen output van mysql query, alleen "Array"

Pagina: 1
Acties:
  • 1.009 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:56
Ik ben bezig met een opdracht voor school, en ik moet een SQL query runnen binnen een PHP script.

Nu heb ik de query al klaar, en die werkt ook in phpmyadmin, maar in m'n PHP script niet.

mijn code:
PHP:
1
2
3
4
5
6
7
8
9
10
<?php  
mysql_connect("localhost","root","");
mysql_select_db("firstchoice");
$query="SELECT categorie, (besteld_aantal * verkoopprijs) As totaal FROM artikel, bestelregel GROUP BY Categorie";

$result = mysql_query ($query);
$row=mysql_fetch_array($result);
echo $row;
echo mysql_error();
?>


Het enige wat ik op m'n scherm zie is "Array" :?

[ Voor 10% gewijzigd door ThinkPad op 09-10-2010 20:59 ]


Acties:
  • 0 Henk 'm!

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 09-06 23:17

Wiethoofd

Broadcast TOM

Volg me op Twitter/X & Bluesky


Acties:
  • 0 Henk 'm!

  • console
  • Registratie: September 2002
  • Laatst online: 21:37
ThinkPadd schreef op zaterdag 09 oktober 2010 @ 20:58:
Ik ben bezig met een opdracht voor school, en ik moet een SQL query runnen binnen een PHP script.

Nu heb ik de query al klaar, en die werkt ook in phpmyadmin, maar in m'n PHP script niet.

mijn code:
PHP:
1
2
3
4
5
6
7
8
9
10
<?php  
mysql_connect("localhost","root","");
mysql_select_db("firstchoice");
$query="SELECT categorie, (besteld_aantal * verkoopprijs) As totaal FROM artikel, bestelregel GROUP BY Categorie";

$result = mysql_query ($query);
$row=mysql_fetch_array($result);
echo $row;
echo mysql_error();
?>


Het enige wat ik op m'n scherm zie is "Array" :?
Komt omdat je een Array terug krijgt ;) Doe eens bv;
PHP:
1
echo $row['categorie'];

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 11-07 17:00

Matis

Rubber Rocket

Dat is toch ook precies wat er in de manual staat :?

Als je op die site eens kijkt naar de voorbeelden, dan zou je er wel uit moeten komen :)

[ Voor 27% gewijzigd door Matis op 09-10-2010 21:07 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:56
Dan krijg ik dit terug:
code:
1
array(4) { [0]=> string(7) "Fitness" ["categorie"]=> string(7) "Fitness" [1]=> string(3) "350" ["totaal"]=> string(3) "350" }
console schreef op zaterdag 09 oktober 2010 @ 21:01:
[...]


Komt omdat je een Array terug krijgt ;) Doe eens bv;
PHP:
1
echo $row['categorie'];
Dan krijg ik alleen "Fitness" terug :S



Voor jullie beeldvorming, mijn query geeft dit als output, wat ook de bedoeling is:

code:
1
2
3
4
5
6
7
8
9
10
categorie   totaal
Fitness 350
Golf    2060
Hockey  190
Outdoor 425
Running 115
Tennis  170
Voetbal 185
Vrije tijd  875
Zwemsport   165

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 11-07 17:00

Matis

Rubber Rocket

Je moet ook door je result heen lopen, want de pointer van je $row wijst nu naar het eerste element (array) in je tweedimensionaal array.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • console
  • Registratie: September 2002
  • Laatst online: 21:37
ThinkPadd schreef op zaterdag 09 oktober 2010 @ 21:06:
[...]

Dan krijg ik dit terug:
code:
1
array(4) { [0]=> string(7) "Fitness" ["categorie"]=> string(7) "Fitness" [1]=> string(3) "350" ["totaal"]=> string(3) "350" }


[...]

Dan krijg ik alleen "Fitness" terug :S



Voor jullie beeldvorming, mijn query geeft dit als output, wat ook de bedoeling is:

code:
1
2
3
4
5
6
7
8
9
10
categorie   totaal
Fitness 350
Golf    2060
Hockey  190
Outdoor 425
Running 115
Tennis  170
Voetbal 185
Vrije tijd  875
Zwemsport   165
Je moet dan door je Array heen wandelen;

PHP:
1
2
3
4
while($row=mysql_fetch_array($result)) {
    echo $row['categorie'];
    echo $row['totaal'];
}

Acties:
  • 0 Henk 'm!

  • ItsValium
  • Registratie: Juni 2009
  • Laatst online: 15:59
verdiep je eens in de types variabelen van zowat elke script-/programeertaal. Dan zul je zien dat het gedrag wat jou scriptje vertoont perfect normaal is.

probeer eens volgende :

PHP:
1
2
3
4
foreach ($row as $key => $value)
{
echo $key." = ".$value;
}


Echter dit is echt basiskennis, verdiep je maar eens in je handboek of in je lesmateriaal!

Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 21:56
Bedankt console!

Dat van jou werkt inderdaad

Heb het nog even aangepast zodat het leesbaar is:
PHP:
1
2
3
4
  echo $row['categorie']; 
    echo "\n";
    echo $row['totaal']; 
    echo "<br />";


P.S Sorry als dit basiskennis is, maar ik heb nooit eerder met PHP gewerkt, en met deze opdrachten moeten we het leren. En met problemen zoals dit weet ik niet echt waar ik moet beginnen.

Ik heb
PHP:
1
2
error_reporting(E_ALL);
echo mysql_error();
al aanstaan, dus dat scheelt al een hele hoop gelukkig.

[ Voor 23% gewijzigd door ThinkPad op 09-10-2010 21:17 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-07 17:04

NMe

Quia Ego Sic Dico.

ThinkPad, dit zal vast allemaal nieuw voor je zijn maar in de manualpagina van mysql_query of mysql_fetch_array, beiden functies die je gewoon blind gebruikt blijkbaar, staat precies uitgelegd wat je moet doen om aan je waardes te komen. Daarnaast kun je in geen enkele taal "zomaar" een array afdrukken, dus dat je even door je array heen zal moeten lopen had je eigenlijk ook zelf moeten kunnen verzinnen.

Omdat je hier best zelf uit had kunnen komen doe ik dit topic dicht. Dat is je nota bene eerder deze week door MueR in "[PHP] $_SESSION werkt niet" ook nog gezegd...

[ Voor 11% gewijzigd door NMe op 09-10-2010 22:45 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.