[PHP-MySQL] array maken van een kolom in meerdere rijen

Pagina: 1
Acties:
  • 140 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben op dit moment bezig met een PHP/MySQL systeem voor het beheren van de frontpage van mijn website. Ik heb een tabel in een database die 2 kolommen heeft, namelijk 'instelling' en 'waarde'. Hierin komen dan verschillende rijen met instellingen. Ik heb de volgende functie geschreven:
PHP:
1
2
3
4
5
6
7
8
9
10
function InstellingWaarde($instelling)
{
    include("dbconnect.php");
    mysql_select_db("frontpage");
    $query = "SELECT waarde FROM instellingen WHERE instelling='$instelling'";
    $result = mysql_query($query);
    $rij = mysql_fetch_array($result);
    $waarde = nl2br($rij['waarde']);
    return $waarde;
}

En dan heb ik dit formulier:
PHP:
1
2
3
4
5
6
7
8
9
$self = $_SERVER['PHP_SELF'];
$aantal_actievetopics = InstellingWaarde(aantal_actievetopics);
$aantal_mededelingen = InstellingWaarde(aantal_mededelingen);
echo "
<form action=\"$self?action=updateinstellingen\">
Aantal actieve topics in tracker: <input name=\"aantal_actievetopics\" value=\"$aantal_actievetopics\" type=\"text\" maxlength=\"2\" size=\"2\"><br><br>
Aantal mededelingen in tracker: <input name=\"aantal_mededelingen\" value=\"$aantal_mededelingen\" type=\"text\" maxlength=\"2\" size=\"2\">
</form>
";

Ik haal dus met die functie de huidige waardes die in de database staan op en plaats ze dan in het formulier zodat ze aangepast kunnen worden. Alleen ik heb het gevoel dat dat gedoe met die functie zo omslachtig is, omdat ik steeds weer handmatig een variabele maak van de kolom 'waarde' in elke rij. Is er niet een manier om een array te maken in de vorm van $waarde['instelling']? Dus bijvoorbeeld $waarde['aantal_actievetopics'] en $waarde['aantal_mededelingen']?
Ik hoop dat het een beetje duidelijk is, ik vond het moeilijk om het te beschrijven.

[ Voor 33% gewijzigd door Verwijderd op 05-08-2005 14:16 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

PHP:
1
2
3
4
5
6
$sql = "SELECT instelling, waarde FROM instellingen";
$rs  = mysql_query ($sql);

$waarde = array ();
while ($row = mysql_fetch_assoc ($rs))
   $waarde[$row['instelling']] = $row['waarde'];

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Uit je eigen code
$waarde = nl2br($rij['waarde']);
Dus waarom maak je geen kopie van $rij beschikbaar zodat je niet elke keer opnieuw je query hoeft uit te voeren?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op vrijdag 05 augustus 2005 @ 14:21:
[...]

Dus waarom maak je geen kopie van $rij beschikbaar zodat je niet elke keer opnieuw je query hoeft uit te voeren?
Omdat dat maar één rij is, terwijl ik voor elke instelling met waarde een rij heb.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bosmonster schreef op vrijdag 05 augustus 2005 @ 14:20:
PHP:
1
2
3
4
5
6
$sql = "SELECT instelling, waarde FROM instellingen";
$rs  = mysql_query ($sql);

$waarde = array ();
while ($row = mysql_fetch_assoc ($rs))
   $waarde[$row['instelling']] = $row['waarde'];
Danku, danku, dit is de oplossing :)