LS,

Ik zou graag met PHP een array willen genereren n.a.v. een SQL query result. Ik heb het halve web al afgezocht, maar ik kan de oplossing maar niet vinden. Wie wel?

Hieronder zie je in code-taal een beetje wat ik ermee bedoel:


<?php $query = array("SELECT * FROM tn_galgje"); ?>


In stappen is dit wat ik wil bereiken:

1. Een sql-query haalt een set resultaten op uit de db.
2. PHP maakt een array op van deze resultaten. Bij voorkeur houdt hij deze resultaten beschikbaar zodat deze resultset later ook als include toepassing op te vragen is.
3. Vervolgens maak ik een code op waarmee ik de resultaten op een scherm kan toveren.

Het voornaamste wat mij dus niet lukt is de vertaalslag van het in een array stoppen (in PHP) van de opgehaalde SQL resultaten.

Groeten,

Gsorsnoi
<?php
$sql = "SELECT * FROM tn_galgje";
if($query = mysql_query($sql))
{
$array = array();
while($tmp = mysql_fetch_array($query))
{
$array[] = $tmp;
}
}
else
{
echo mysql_error();
}
?>

Uiteraard moet je hiervoor ook nog wel een database connectie openen, maar dat laat ik even terzijde;)

Nu kun jij via foreach elk record doorlopen zoals je wil. (foreach $array as ...)

edit: Sorry, had er een klein foutje inzitten, met dank aan de post hieronder;)
<?php

$sQry = 'SELECT * FROM tn_galgje';

$rQuery = mysql_query($sQry);

if( $rQuery === false )
{
echo mysql_error();
exit;
}

$aResult = array();

while( $r = mysql_fetch_assoc($rQuery) )
{
$aResult[] = $r;
}

print_r($aResult);

?>

Vreemd dat je dit zelfs niet gevonden hebt op php.net ??
gsorsnol, je moet eerst een MySQL query maken, anders heeft die variabele van jou ook niet echt veel nut...

[color=#4A536D]goresnol? wtf..[/color]
Beste Maarten en Martijn,

Het zit mij in het weergave probleem van de waarden in de array. Dit werkt twee kanten op:

1. De print_r van Martijn gebruik ik ook, maar meer als hulpmiddel tijdens het programmeren van wat PHP in de array als output zet.
2. De waarden in de array wil ik namelijk in andere scripts toepassen (vandaar mijn verwijzing naar includes). De hangman script van
http://www.scriptcavern.com/freephp_hangman.php
heb ik willen aanpassen zodat de te raden woorden niet hard in de code staan, maar opgehaald moeten worden vanuit een SQL database. Want dan kan de beheerder van een website later zelf nog eens wat nieuwe woorden toevoegen zonder in de code van PHP te hoeven duiken en daar de woorden tussen te voegen.
Dit is slechts één toepassing waarom ik dit trucje wil kennen: in meerdere scripts die ik half geschreven heb loop ik ook steeds vast op dit probleem.

Pas ik nu het antwoord van Martijn toe dan krijg ik de volgende parser error:

Warning: Division by zero in (en dan de verwijzing naar de line uit het hierna genoemde fragment van een php bestand dat de weergave van de pagina bepaald).

 
<?php
{
$hmwordcount=count($g_hm_word);
$hmwordn=$qt % $hmwordcount;
$hmword=strtoupper($g_hm_word[ $hmwordn ]);
$hmwordl=strtolower($hmword);
if($qg == '')
{
?>
 


Het script van http://www.scriptcavern.com/freephp_hangman.php is voor mij slechts een hulpmiddel om het antwoord op dit probleem te ontrafelen.



Kortom: de uit de database gehaalde waarden hebben we nu in een array staan. Hoe kan ik die array waarden lezen in een andere script.


Is er een moderator die deze post wil verwijderen? Ik laat me niet graag voor snol uitmaken. Daarbij slaat de opmerking nergens op, daar ik toch echt een query genoemd heb.

Vast bedankt!

iChris.nl schreef op 15.08.2008 14:21
gsorsnol, je moet eerst een MySQL query maken, anders heeft die variabele van jou ook niet echt veel nut...

[color=#4A536D]goresnol? wtf..[/color]
Gsorsnoi schreef op 15.08.2008 14:50
Is er een moderator die deze post wil verwijderen? Ik laat me niet graag voor snol uitmaken. Daarbij slaat de opmerking nergens op, daar ik toch echt een query genoemd heb.

Vast bedankt!

[quote='iChris.nl schreef op 15.08.2008 14:21']gsorsnol, je moet eerst een MySQL query maken, anders heeft die variabele van jou ook niet echt veel nut...

[color=#4A536D]goresnol? wtf..[/color]
[/quote]

Ik denk dat je dit verkeerd begrijpt en het een beetje erg hoog opneemt. Het komt namelijk vaker voor dat men een nickname aanmaakt met een woordspeling erin. We dachten dat je het zo bedoelde, vandaar die vraagteken (en wtf erna). Tevens probeerde hij je alleen maar te helpen.

Zelf denk ik dat het een misverstand is, aangezien het gedrag op dit forum prima in orde is.
KONIJNTJES!!! AAAAAAAAAAAA

konijntjes in de nacht, grab your torches and pitchforks!
juist ja.. ^^
Anyway, je zit nu met een array en die wil je weergeven.

Een array uitlezen kan je dmv een foreach loop.

<?php
$data = array();
$result = mysql_query("SELECT ....");
while ($row = mysql_fetch_array($result)){
$data[$row['id']] = $row['value'];
}

// elders in je code (in ander bestand of iets dergelijks)
foreach ($data as $id => $value){
echo $id.' en '.$value;
}
?>

Hierbij een voorbeeld met meerdere values.

<?php
$data = array();
$result = mysql_query("SELECT ....");
while ($row = mysql_fetch_array($result)){
$data[$row['id']] = array(
'value1' => $row['value1'],
'value2' => $row['value2'],
'value3' => $row['value3']
);
}

// elders in je code (in ander bestand of iets dergelijks)
foreach ($data as $id => $valueArray){
echo $id.' en '.$valueArray['value1'].' en '.$valueArray['value2'].' en '.$valueArray['value3'];
}
?>
wes schreef op 15.08.2008 15:37
KONIJNTJES!!! AAAAAAAAAAAA

konijntjes in de nacht, grab your torches and pitchforks!


Vergeet de KAROT niet

Reageren