[mysql][php] mysql_fetch_array

Pagina: 1
Acties:

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Hier vond ik een mooi php script dat grafiekjes kan maken. Ik wil dit script gebruiken om data uit mijn mysql database mooi weer te geven in een grafiekje.
Ik dacht dan maak ik eerst het aller simpelste en lelijkste grafiekje, zorg dat dat werkt dan pas mooi maken.

hier de code van het simpele grafiekje:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
include ("jpgraph.php");
include ("jpgraph_line.php");


$ydata = array(11,3,8,12,5,1,9,13,5,7);

// Create the graph. These two calls are always required
$graph = new Graph(300,200);     
$graph->SetScale("textlin");

// Create the linear plot
$lineplot=new LinePlot($ydata);

// Add the plot to the graph
$graph->Add($lineplot);

// Display the graph
$graph->Stroke();
?>

Ik moet dus die $ydata vullen met waarden uit mijn database.

Ik dacht dat te moeten doen met mysql_fetch_array maar na een tijd prutsen nog geen resultaat :(

deze link heb ik gelezen maar ik kom er niet uit.
http://www.php.net/manual/en/function.mysql-fetch-array.php
Ik weet dat het moet met een while loop maar ik zou niet weten hoe ik verder moet...

Mijn gepruts:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
include ("jpgraph.php");
include ("jpgraph_line.php");

$db = mysql_connect("localhost", "root");
mysql_select_db("diederik",$db);
// query geeft 1 kolom met waarden:
$result = mysql_query("SELECT geflushd FROM stats where name='Haranaka' order by date",$db);

$blaat=mysql_fetch_array($result);


$ydata = array(11,3,8,12,5,1,9,13,5,7);

// Create the graph. These two calls are always required
$graph = new Graph(300,200);     
$graph->SetScale("textlin");

// Create the linear plot
$lineplot=new LinePlot($blaat);

// Add the plot to the graph
$graph->Add($lineplot);

// Display the graph
$graph->Stroke();
?>

...


  • KnEuTeR
  • Registratie: Mei 2000
  • Laatst online: 24-02-2024

KnEuTeR

iedereen heeft een handelsmerk

met mysql_fetch_array() krijg je een array, geen object?

gebruik anders mysql_fetch_object() :)

Computers ain't that smart, Whatever man built could be taken apart


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Niemand :?

Ik moet dus $ydata = array(11,3,8,12,5,1,9,13,5,7) vervangen door gegevens uit mijn database.

Dat moet toch wel kunnen?

...


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
mysql_fetch_array geeft een array v/d rows van 1 record, niet van de records.

je moet zoiets doen:
code:
1
2
3
4
5
6
7
<?
$result = mysql_query("SELECT geflushd FROM stats where name='Haranaka' order by date",$db);
while (list ($data) = mysql_fetch_row($result))
{
    $blaat[] = $data;
}
?>

dan heb je je zooi als array in blaat.

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Parse error: parse error in /l2/httpd/Examples/plot.php on line 11

En dat is de line met:
$blaat[] = $data;

...


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function checkRight($forumRight)
{

    reset ($forumRight);
    $forumsAllowed="(";
    $forumsDenied="(";
    
    while (list ($key, $val) = each ($forumRight)) {
//  echo "$key -> $val";
            if ($val>0)$forumsAllowed.="$key,"; else $forumsDenied.="$key,";
        }     
    if($forumsAllowed!="(")$forumsAllowed = substr_replace($forumsAllowed,")",strlen($forumsAllowed)-1); else unSet($forumsAllowed);
    if($forumsDenied!="(") $forumsDenied = substr_replace($forumsDenied,")",strlen($forumsDenied)-1); else unSet($forumsDenied);
    $deArray=array($forumsAllowed,$forumsDenied);
    return $deArray;
    //die();
}

Ik ben te aardig. Dit komt gewoon uit mijn code, dus je mag het zelf gaan aanpassen.

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Ik blijf het maar vaag vinden, ben dankzij marcusk wel een stuk verder maar hij doet niet wat ik wil :(

Volgens mij zit het probleem hem toch in de data in die array te krijgen. Die querie die er staat haald op dit moment waarde 81 uit de database, zonder die AND date='2002-01-15' haald hij een kolom met waarden op. En zet ik in die querie een where statement die niet waar is dan geeft hij keurig "Geen data beschikbaar".

Als ik dit zo laad (of andere mogelijkheden) dan krijg ik een pagina te zien met alleen maar:
Array

Ik heb hem even gestript post maar weer even wat ik nu heb...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$db = mysql_connect("localhost", "root");
mysql_select_db("diederik",$db);
$result = mysql_query("select geflushd from stats where name='Haranaka' AND date='2002-01-15'",$db);

if (mysql_num_rows($result)){

while (list ($data) = mysql_fetch_row($result))
 {
  $blaat[] = $data["geflushed"];
 }
} 
else {
echo "Geen data beschikbaar";
}

echo $blaat;
echo $data["geflushd"];
?>

...


  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 08:02

DizzyWeb

Ondertiteld

klopt helemaal.

$blaat is geen string, dus die kan je zo niet echo'en :P

$blaat is een array, dus je zal elementen uit die array moeten echo'en...

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je dan ook bij je 1e aanroep van data "geflushd" gebruikt ?

Btw, $data is helemaal geen array in jouw code.... Je moet _of_ "$data = mysql_fetch_array()" gebruiken _of_ "list($data) = mysql_fetch_row()" waarbij je in het eerste geval $data["geflushd"] moet gebruiken en in het 2e geval "$data"...

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Ok weer wat geleerd, maar wat je nu ziet zijn prutsels van me. Als het niet werkt dan ga je dingen veranderen en kijken of het dan wel werkt...
Maar wat ik niet snap is als hij die array dus kennelijk wel goed vuld met waarden waarom maakt dat jpgraph er dan geen grafiekje van?

Met welk commando kan ik wel de inhoud van die array wergeven? Dan kan ik zien wat en hoe erin zit.
explode ("",$blaat)
geeft: Warning: Empty delimiter in /l2/httpd/Examples/zooi.php on line 24
explode (",",$blaat)
(of wat ik daar ook maar invul, getallen ofzo) dan zegt hij helemaal niets meer :?

Ook als ik
$blaat[] = $data; + ",";
en
explode (",",$blaat)
dan zegt hij niets.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$db = mysql_connect("localhost", "root");
mysql_select_db("diederik",$db);
$result = mysql_query("select geflushd from stats where name='Haranaka' AND date='2002-01-15'",$db);
//$result = mysql_query("select * from stats where name='Haranaka'",$db);


if (mysql_num_rows($result)){

while (list ($data) = mysql_fetch_row($result))
 {
  $blaat[] = $data;
 }
} 
else {
echo "Geen data beschikbaar";
}

echo $blaat;
explode ("",$blaat)
?>

...


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
met print_r kun je de inhoud van een array mooi weergeven, dus:
code:
1
print_r($blaat);

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Array ( [0] => 0 [1] => 0 [2] => 82 [3] => 1694 [4] => 31 [5] => 148 [6] => 259 [7] => 230 [8] => 259 [9] => 106 [10] => 90 [11] => 158 [12] => 81 [13] => 232 )

Dit is de output die ik krijg met print_r($blaat)

Als ik dit omzet ofzo naar de vorm
array(11,3,8,12,5,1,9,13,5,7)

Dan ben ik klaar lijkt me, iemand een suggestie?

...


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:09

Janoz

Moderator Devschuur®

!litemod

Hoezo omzetten... Het zit al in die vorm.... Gewoon waar nu array(..,..,..) staat nu $blaat neerzetten zou genoeg moeten zijn.

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


  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Wel popjandorie, het werkt inderdaad. Hij poept een grafiekje je uit, nouja grafiek, hij maakt er in eklgeval wat van... Ik pruts weer vrolijk en met volle moet verder :)

...

Pagina: 1