Help! gegevens uit de database toont hij 2 keer inpl 1!!
ik ben bezig met een script en ik wil de gegevens uit mijn database halen, de connectie is gemaakt en alles is goed. Maar er is een probleempje.. Dat is dat hij 2 keer inplaatsvan 1 keer de gegevens toont..
Hieronder het script post maar suggesties, nieuwe scriptjes..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$query = mysql_query("SELECT * FROM members");
$result = mysql_num_rows($query);
if(!$result){
echo "eerst iets bouwen!";
}
else{
while($object = mysql_fetch_object($query)){
echo "Werf ";
echo "Niveau ";
echo "$object->werf <br>";
echo "<a href=gebouwen.php?update=werf>Verbeter!</a><br><br>";
echo "Gemeentehuis ";
echo "Niveau ";
echo "$object->gemeentehuis <br>";
echo "<a href=gebouwen.php?update=gemeentehuis>Verbeter!</a><br><br>";
}
}
?>
$query = mysql_query("SELECT * FROM members");
$result = mysql_num_rows($query);
if(!$result){
echo "eerst iets bouwen!";
}
else{
while($object = mysql_fetch_object($query)){
echo "Werf ";
echo "Niveau ";
echo "$object->werf <br>";
echo "<a href=gebouwen.php?update=werf>Verbeter!</a><br><br>";
echo "Gemeentehuis ";
echo "Niveau ";
echo "$object->gemeentehuis <br>";
echo "<a href=gebouwen.php?update=gemeentehuis>Verbeter!</a><br><br>";
}
}
?>
P.S. ik ben nog niet zolang bekend in php en Mysql..
groet peter
Heb je geen dubbele records in je database?
Je haalt meerdere gebruikers op, en die echoje in een while loopje... dan krijg je inderdaad vaker gegevens op je scherm...
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$query = mysql_query("SELECT * FROM members LIMIT 0,1"); // de limit zorgt ervoor dat je alleen
// het eerste resultaat weergeeft. De eerste 0 is laat
// ik maar zeggen vanaf 0 en de tweede is hoeveel je
// er wil weergeven
$result = mysql_num_rows($query);
if($result == 0){ // of FALSE
echo 'Eerst iets bouwen!';
}
else{
while($object = mysql_fetch_object($query)){
echo 'Werf ';
echo 'Niveau ';
echo $object->werf. '<br>';
echo '<a href="gebouwen.php?update=werf">Verbeter!</a><br><br>';
echo 'Gemeentehuis ';
echo 'Niveau ';
echo $object->gemeentehuis. '<br>';
echo '<a href="gebouwen.php?update=gemeentehuis">Verbeter!</a><br><br>';
}
}
?>
$query = mysql_query("SELECT * FROM members LIMIT 0,1"); // de limit zorgt ervoor dat je alleen
// het eerste resultaat weergeeft. De eerste 0 is laat
// ik maar zeggen vanaf 0 en de tweede is hoeveel je
// er wil weergeven
$result = mysql_num_rows($query);
if($result == 0){ // of FALSE
echo 'Eerst iets bouwen!';
}
else{
while($object = mysql_fetch_object($query)){
echo 'Werf ';
echo 'Niveau ';
echo $object->werf. '<br>';
echo '<a href="gebouwen.php?update=werf">Verbeter!</a><br><br>';
echo 'Gemeentehuis ';
echo 'Niveau ';
echo $object->gemeentehuis. '<br>';
echo '<a href="gebouwen.php?update=gemeentehuis">Verbeter!</a><br><br>';
}
}
?>
zo...
Variabelen buiten quotes. en enkele aanhalingtekens gebruiken (anders kom je in de knoop met html
Gewijzigd op 20/03/2006 20:36:00 door Jason de Ridder
hoe kan ik het dan herstellen?
Jason heeft de query veranderd, waardoor je maar één keer de resultaten van alle gebruikers ophaalt, de eerste die in je database voorkomt dus.
Maar ik denk dat jij het aan een login-systeem wilt koppelen en de ingelogde wilt laten zien wat hij allemaal wel niet gebouwd heeft, of niet?
Als het is wat ik denk, dan moet je je query aanpassen in een query met een WHERE conditie. Zoiets:
$sql = mysql_query("SELECT * FROM members WHERE user='hansje'");
Het dikgedrukte deel zorgt ervoor dat hij alleen de resultaten van de user (veranderen in de naam van je eigen veld natuurlijk) 'hansje' ophaalt.
edit: Overigens moet je wel het stukje van Jason kopiëren, en zijn tips eronder even lezen ;-)
Gewijzigd op 20/03/2006 20:45:00 door Eric Cartman