Kan ikke tjekke om count er = 0. Hvorfor?

Tags:    php

Hey


Jeg sad igår nat og var ved at lave sådan en status som tællede noget i min database så jeg kunne skrive hvor mange links, forum tråde osv der var på min side.

Min kode er her:


//Tæller poster i en given tabel

function tael($tabel, $string, $tekst){
include("Db_conn/conn.php");

$sql = mysql_query("select $string from $tabel");

while($data = mysql_fetch_array($sql)){
$tael[] = $data['overskrift'];

$jeg_taeller = count($tael);

if(!empty($tael)){
$counted = "$jeg_taeller";
} else {
$counted = "0";
}//if løkken lukkes


}//while løkken lukkes

print("<font face=\\"verdana\\" size=\\"1\\">    <b>$counted</b> $tekst</font><br>");


}

Jeg har prøvet alt!! Også det at skifte if sætningen ud med en anden:

if($tael > "0"){
$counted = "$jeg_taeller";
} else {
$counted = "0";
}//if løkken lukkes


Sådan har jeg lavet mange forskellige, men den gider bare ikke løbe løkken igennem. Jeg tror at det har noget at gøre med at den ikke skriver 0 eller noget hvis array er tomt. Eller det jeg vil sige er at hvis jeg ikke har noget i min tabel så tæller den det ikke og springer videre.

Men hvordan får jeg den til at skrive 0 hvis der ikke er noget i min tabel?


MxS @ http://mxs.frac.dk
Slamkodning for fred



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Ville nok bruge mysql_fetch_array når du skal behandle dit info fra tabellen...

Fold kodeboks ind/udKode 

Jan Larsen
CO-owner http://www.jabo-web.com




Det letteste ville helt klart være at bruge mysql_num_rows

Fold kodeboks ind/udKode 


Bare skriv hvis du er i tvivl

Jan Larsen
CO-owner http://www.jabo-web.com


[Redigeret d. 02/01-04 16:48:00 af Jan L]



Det letteste ville helt klart være at bruge mysql_num_rows

Fold kodeboks ind/udKode 


Bare skriv hvis du er i tvivl

Jan Larsen
CO-owner http://www.jabo-web.com


Ok har set den i aktion nogen gange, men hvad gør den? Tæller op eller hva?
MxS @ http://mxs.frac.dk
Slamkodning for fred



Det letteste ville helt klart være at bruge mysql_num_rows

Fold kodeboks ind/udKode 


Bare skriv hvis du er i tvivl

Jan Larsen
CO-owner http://www.jabo-web.com


Ok har set den i aktion nogen gange, men hvad gør den? Tæller op eller hva?
MxS @ http://mxs.frac.dk
Slamkodning for fred



Oh sry... læste lige hele din kommentar!! Jeg har fundet ud af det!! Tjekker lige om det virker!

MxS @ http://mxs.frac.dk
Slamkodning for fred



Hey J

Nu har jeg prøvet at sætte det sammen, men siden loader aldrig færdig!!

Her er min kode:
function tael($tabel, $string, $tekst){
include("Db_conn/conn.php");

$sql = mysql_query("select $string from $tabel");

while($tael = mysql_num_rows($sql)){


if($tael > "0"){
$counted = "$tael";
} else {
$counted = "0";
}//if løkken lukkes


}//while løkken lukkes

print("<font face=\\"verdana\\" size=\\"1\\">    <b>$counted</b> $tekst</font><br>");


}


MxS @ http://mxs.frac.dk
Slamkodning for fred



Hey J

Nu har jeg prøvet at sætte det sammen, men siden loader aldrig færdig!!

Her er min kode:
function tael($tabel, $string, $tekst){
include("Db_conn/conn.php");

$sql = mysql_query("select $string from $tabel");

while($tael = mysql_num_rows($sql)){


if($tael > "0"){
$counted = "$tael";
} else {
$counted = "0";
}//if løkken lukkes


}//while løkken lukkes

print("<font face=\\"verdana\\" size=\\"1\\">    $counted $tekst</font>");


}


MxS @ http://mxs.frac.dk
Slamkodning for fred


Du skal ikke bruge en while løkke da det ikke giver nogen mening:
$tael = mysql_num_rows($sql);
if($tael > "0"){
$counted = "$tael";
} else {
$counted = "0";
}//if løkken lukkes

Men hvorfor bruger du ikke bare din sql til at tælle rækkerne for dig?

function tael($tabel, $string, $tekst)
{
include("Db_conn/conn.php");
$sql = mysql_query("select count($string) as counted from $tabel");
$data = mysql_fetch_array($sql);
$counted = isset($data['counted'])?$data['counted'] : "0";
print("<font face=\\"verdana\\" size=\\"1\\">    <b>$counted</b>$tekst</font><br>");
}

/Michael.



Tak Jan!!

Jeg har jo glemt at jeg bare skal tælle og ikke udskrive alt så jeg behøves jo ikke den while sætning!! Det gjorde det hele. Du får de fleste points, men Michael får også lidt da han lige fik min hjerne ind på rette spor.


MxS @ http://mxs.frac.dk
Slamkodning for fred



Tak Jan!!

Jeg har jo glemt at jeg bare skal tælle og ikke udskrive alt så jeg behøves jo ikke den while sætning!! Det gjorde det hele. Du får de fleste points, men Michael får også lidt da han lige fik min hjerne ind på rette spor.


MxS @ http://mxs.frac.dk
Slamkodning for fred



Hmm Michael har ikke skrevet det som et svar så jeg giver dig det hele.
MxS @ http://mxs.frac.dk
Slamkodning for fred



t