(ben nieuw in php)

ik wil één tabelwaarde (id) uit de database halen met onderstaande code die werkt.
hoe kan ik deze waarde laten zien?

ik kan me voorstellen zoiets als:
- echo $_GET['id'];
- echo $tbl_name['id'];

of moet dat met:
- while ($rij = mysql_fetch_array($resultaat)){
maar ik heb maar één waarde en dus(?) geen array nodig...


<?php
$sql = "SELECT id FROM $tbl_name WHERE username='$loc_username' and password='$loc_password'";
$result = mysql_query($sql);
?>
de vraag is hoe de variabelen worden opgeslagen in het geheugen ?
Hallo J jazzyjan,

Als je hebt:

<?php
$sql = "SELECT id FROM $tbl_name WHERE username='$loc_username' and password='$loc_password'";
$result = mysql_query($sql);
?>


Wordt in $result de query uitgevoerd.

$result moet je vervolgens door mysql_fetch_assoc halen om de opgehaalde gegevens weer in een variabele te zetten. Dat kan met een while (loop), maar zoals je zelf stelt is dat niet nodig bij slechts één record. Je moet dan uiteraard er wel 100% zeker van zijn dat er ook maar één record is.
Bijvoorbeeld met mysql_num_rows($result) == 1

Probeer bijvoorbeeld eens:

<?php
$sql = "SELECT id FROM $tbl_name WHERE username='$loc_username' and password='$loc_password'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

echo $row['id'];
?>
Ramon van Dongen op 21/08/2013 00:11:37

Je moet dan uiteraard er wel 100% zeker van zijn dat er ook maar één record is.
Bijvoorbeeld met mysql_num_rows($result) == 1

Eigenlijk vind ik dat nog niet eens het belangrijkste. Als er meer resultaten zouden zijn dan wordt gewoon de eerste gepakt en de rest 'vergeten'. In dit geval lijkt de kans me echter klein dat er meer dan 1 resultaat terugkomt (zeker als er een unique index op het veld username zit).

Wat echter veel belangrijker is, is wat er moet gebeuren als er géén records in de resultset zitten. De code kan dus beter iets zijn als:

$result = mysql_query($sql);
if ($row = mysql_fetch_assoc($result))
{
   doeIetsMet($row);
}
else
{
   echo "Inloggen mislukt";
}

En uiteraard gebruikt een programmeur die een vooruitziende blik heeft de mysqli-functies in plaats van de mysql-functies...
Super bedankt voor de reakties, zeer leerzaam voor mij als beginnende PHP-er!

Reageren