Count PHP

Status
Niet open voor verdere reacties.

hawkins

Gebruiker
Lid geworden
18 jun 2009
Berichten
57
Hoi

Ik wil met dit script laten zien hoeveel nieuwe berichten iemand ontvangt maar hij werkt niet volledig, het geeft namelijk als resultaat 1.

wat moet ik veranderen


PHP:
		<?php

include_once "config.php";
$addr = $_SERVER["REMOTE_ADDR"];
$naam = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE ip ='$addr'"));
$naam2 = $naam[username];

$result = mysql_query("SELECT count(status) FROM mail WHERE To ='$naam2' && status ='old'");



$result2 = count($result);
 
echo $result2; 



?>

Alvast bedankt!
 
Je telt nu alleen de query zelf. Je zal hem eerst door mysql_fetch_object moeten halen en vervolgens de waarde eruit halen.

PHP:
$query = mysql_query("select count(bla) as countBla from table");
while($row = mysql_fetch_object($query))
{
  echo $row->countBla;
}

Zoiets gaat het :)
 
je kun ook de mysql_num_rows functie gebruiken. Dit geeft het aantal records terug van een query.
 
Kun je doen, maar niet als je count in SQL gebruikt, want dan is het aantal rijen altijd 1 :P

Overigens kun je beter count in SQL doen, dat is een stuk efficienter.
 
Maar dat lost het niet op, als het goed is geeft SELECT count(*) FROM table maar 1 row terug in het resultaat, maar die count in de query kan best 2 of 47 of 102 zijn.
 
Ik heb nu het programmaatje veranderd maar de WHERE functie doet het nu niet hij laat nu niets zien



PHP:
<?php
include_once "config.php";
$addr = $_SERVER["REMOTE_ADDR"];
$naam = mysql_fetch_array(mysql_query("SELECT * FROM 'users' WHERE ip ='$addr'"));
$naam2 = $naam[username];


$result = mysql_query("SELECT * FROM 'mail' WHERE To = '$naam2'");
$num_rows = mysql_num_rows($result);


echo "$num_rows";

?>
 
Wat doet het niet dan? Wat is de uitkomst van de eerste/laatste query als je die bijvoorbeeld in phpMyAdmin test en zelf even handmatig je IP adres/naam invult? Wat is de uitkomst van $naam2 als je die op het scherm print?

Wij kunnen zo niet ruiken wat er mis gaat...
 
Hij geeft vast een melding van "Unexpected T_CONSTANT on line 5" ;)
Even wat quotes gebruiken:
PHP:
$naam2 = $naam['username'];
 
Hoewel er inderdaad aanhalingstekens omheen moeten, werkt het ook zonder. Als de "constante" niet bekend is wordt ervan uitgegaan dat er aanhalingstekens omheen hadden moeten staan:
PHP Notice: Use of undefined constant username - assumed 'username'
 
Geef eens wat meer info dan? Wat gaat er precies niet goed? Krijg je een foutmelding?

Probeer eens wat meer informatie te geven.
 
als ik hem uitvoer geeft laat hij niets zien. en een error krijg ik niet
 
Wat krijg je met deze dan?

PHP:
<?php
include_once "config.php";
$addr = $_SERVER["REMOTE_ADDR"];
$query = mysql_query("SELECT * FROM 'users' WHERE ip ='$addr'") or die(mysql_error());
$naam = mysql_fetch_object($query);
$naam2 = $naam->username;
 
echo "Naam: ".$naam2;
 
$result = mysql_query("SELECT * FROM 'mail' WHERE To = '$naam2'") or die(mysql_error());
$num_rows = mysql_num_rows($result);
 
echo $num_rows." rijen gevonden";
 
?>
 
Tijd om je errors te laten tonen :rolleyes:
PHP:
ini_set('display_errors', 1); 
error_reporting(E_ALL);

Als zaken niet werken is het ook aan te raden bepaalde variabelen te echoën om ze te controleren.
 
Ik heb het al

PHP:
<?php
include_once "config.php";
$addr = $_SERVER["REMOTE_ADDR"];
$naam = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `ip` ='$addr'"));
$naam2 = $naam['username'];


$result = mysql_query("SELECT * FROM `mail` WHERE `To` = '$naam2'");
$num_rows = mysql_num_rows($result);


echo "$num_rows";

echo mysql_error();
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan