onderstaand script werkt wel maar hij geeft maar 1 row terug en hij telt er 3 maar laat deze niet zien.

<code>
<?php

$server = "localhost";
$user = "root";
$database = "adres";


Mysql_connect ($server, $user);
mysql_select_db($database);
$naam = $_GET['naam'];
$plaats = $_GET['plaats'];

$sql = "SELECT naam, telefoon, count(*) AS aantal FROM lijst where naam like '%$naam%' and plaats like '%$plaats%' group by naam";

$result = mysql_query($sql);
while( $data = mysql_fetch_array($result))
{

echo $data['naam'] . "&nbsp/&nbsptelefoon:" . $data['telefoon'] . "<br><br>Aantal records gevonden:" . $data['aantal'] ;

echo "<br><br>";

}
mysql_query($sql) or die("Query kan niet uitgevoerd worden. MySQL retouneerde
devolgende error: ".mysql_error());
?>


<html>
<form action="" METHOD="GET">
Vul hier een verzoek in:<BR>
<input type="text" name="naam" >
<input type="text" name="plaats">
<input type="submit" value='Go'checked>&nbsp <input type="reset" value='Wissen'>
</form>
<?


if(isset($_GET['naam'])){

echo "Deze naam heeft uw ingevuld: ".$_GET['naam']."\n";
}
else
{
echo "Bestand niet gevonden";
}
?>
</html>

</code>
weet iemand wat ik fout doe?





En als je de coun(*) eruit haalt (uit je query)
Je gebruikt de group by icm count verkeerd. Je bedoelt dat hij 3 records toont, maar dat de countuitslag 1 is. Dat is logisch omdat je op naam groepeerd. Met de * in COUNT(*) zorg je er niet voor dat hij alle records telt. De * staat voor ALLE KOLOMMEN.

Wat je kunt doen is de count weghalen, net als group by naam.
Het aantal HITS kan je met mysql_affected_rows() ophalen.
Dus gewoon na mysql_query()
echo mysql_affected_rows();

Succes
p.s. Het is [ignore]
 en 
[/ignore], zou je dat jezelf aan kunnen leren? Alvast bedankt..
Bedankt voor de info het
echo mysql_affected_rows();
werkt.
Ik ben een data base aan het bouwen van 1500 tekeningen bij mijn werkgever,dankzij jullie tips kan ik goed manipuleren met de gegevens.

Bedankt, hans

Reageren