Hallo allemaal,

ik probeer een pagina te maken waarin contactgegevens uit een database worden gehaald en op deze pagina worden getoond. Niet zo heel lastig leek mij? Nu kom ik toch tegen een foutje aan. Weet misschien één van jullie zo op het eerste gezicht wat er fout aan is?

<script>
<?php
$user = "root";
$pass = "usbw";
$db = "login";
$host = "localhost";

mysql_connect($host, $user, $pass) or die ("kan geen verbinding maken met de database.");
mysql_select_db($db) or DIE ("Kan database niet vinden.");

$sql = "SELECT naam FROM contactgegevens WHERE id = '1'";
$result = mysql_query($sql);
?>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<table>
<tr>
<td>Naam:</td>
<td><?php echo $result ?></td>
</tr>
<tr>
</script>
Je kan geen result van een query echo'en.

Je vergeet namelijk nog te fetchen met mysql_fetch_assoc().
Lees ook eens: http://www.phptuts.nl/view/41/
Dank je wel voor je reactie. Tot nu toe heb ik het zo:
<?php
$user = "root";
$pass = "usbw";
$db = "login";
$host = "localhost";

mysql_connect($host, $user, $pass) or die ("kan geen verbinding maken met de database.");
mysql_select_db($db) or DIE ("Kan database niet vinden.");

$sql = "SELECT naam FROM contactgegevens WHERE id = '1'";
$result = mysql_query($sql);
$naam = mysql_fetch_assoc($result);

echo $naam;
?>

Helaas is de output op mijn beeldscherm dan "array". Enig idee voor een oplossing?
$naam['naam']
Gelukt, voor de mensen die hetzelfde probleem hadden:

<?php
$user = "root";
$pass = "usbw";
$db = "login";
$host = "localhost";

mysql_connect($host, $user, $pass) or die ("kan geen verbinding maken met de database.");
mysql_select_db($db) or DIE ("Kan database niet vinden.");

$sql = "SELECT * FROM contactgegevens WHERE id = '1'";
$result = mysql_query($sql);
$naam = mysql_fetch_assoc($result);

echo $naam['naam']
?>

Nu nog een vraag, ik heb nog meer gegevens in de database zitten zoals telefoonnummer, adres etc. Kan ik deze ook dmv. "SELECT * FROM contactgegevens WHERE id='1'" in een array kunnen zetten en dan in een tabel apart de uitkomsten van deze array zetten? Dus zeg maar zo:

<?php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<table>
<tr>
<td>Naam:</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>Telefoonnummer (2):</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>E-mailadres:</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>Fax nummer:</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>Adres:</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>Postcode:</td>
<td>//gegeven database</td>
</tr>
<tr>
<td>Woonplaats:</td>
<td>//gegeven database</td>
</tr>
</table>
</body>
</html>
?>

(PHP tekens voor wat overzichtelijkheid)

<?php
echo $naam['naam']." - ". $naam['naam'] ." - ". $naam['telefoonnummer'];
?>


$naam is op zich al een array, waarin alle velden staan per element van de gekozen gebruiker.
Ik zie ook nergens foutafhandeling van je query. Lees die PHPtuts tutorial maar eens.
Ik ben met iets gelijk bezig.
Alles werkt. Maar nu wil ik alleen de gegevens laten zien van de user die zich inlogt.
Dat zal dan met een post variabele zijn maar dat lukt mij niet.

php code:
<?php
//---------------------------------
// Een database openen in MySQL
//---------------------------------
// variabelen initialiseren
$host="localhost";
$username="root";
$password = "usbw";

$dbnaam="users";
$fout = "FOUT: openen database mislukt";
$query="SELECT * FROM users";
// ---- einde initialisatie

$db=mysql_connect($host, $username, $password) or die ($fout);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query);
?>


<html>
<head>
<title>test</title>
</head>

<body>
<table border="1" width="70%" align="center">
<tr>
<td colspan="10"><h2 align="center">Werknemers</h2></td>
</tr>
<tr>
<th>id</th>
<th>email</th>
<th>wachtwoord</th>
<th>admin</th>
<th>naam</th>
<th>adres</th>
<th>plaats</th>
<th>postcode</th>
<th>land</th>
<th>nieuwsbrief</th>
</tr>
<?php while ($rij = mysql_fetch_array($result)){
echo ("<tr><td>". $rij['id'] . " </td> " .
"<td>" . $rij['email'] . " </td>" .
"<td>" . $rij['wachtwoord'] . " </td> " .
"<td>" . $rij['admin'] . " </td> " .
"<td>" . $rij['naam'] . " </td> " .
"<td>" . $rij['adres'] . " </td> " .
"<td>" . $rij['plaats'] . " </td> " .
"<td>" . $rij['postcode'] . " </td> " .
"<td>" . $rij['land'] . " </td> " .
"<td>" . $rij['nieuwsbrief'] . " </td></tr>\n ");
}
?>

</table>
<hr>


</body>
</html>
SELECT * FROM users

Wordt dan iets als
SELECT * FROM users WHERE id = id_van_de_ingelogde_user
heb nu deze in gebruik

<?php
$host="localhost";
$username="root";
$password = "usbw";

$dbnaam="users";
$fout = "FOUT: openen database mislukt";
$query= "SELECT * from users WHERE id=" .$_GET["id"];

<input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
// ---- einde initialisatie

$db=mysql_connect($host, $username, $password) or die ($fout);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query);
?>


En op de beveiligde pagina na het inloggen
iets zoals dit

<div id="content">
<?php
if (!isset($_SESSION["username"])){
$tekst = "<h2>U bent nog niet aangemeld.</h2>
U kunt <a href=\"login1.php\">hier inloggen</a> of<br>
U kunt zich <a href=\"registreer.php\">hier registreren</a>";
echo($tekst);
}else{?>

<h3>Welkom op deze beveiligde pagina</h3>

U bent aangemeld als : <?php echo($_SESSION["username"]);?> <br>

<?php
}
?>
<?php
$query = "SELECT * FROM users WHERE email='$email';";
$resbew = mysql_query($query);
$email = $_SESSION["email"];
?>
"Uw gegevens aanpassen? Dit kan <a href=\"test.php?id=['id'].">hier</a>
</div>

Maar nu werkt de link niet. Doe ik iets fout? Ik werk nog niet zolang met php...

Reageren