count() funktioiert nicht so richtig
Christian
- php
0 Viennamade0 Christian0 Tom0 Sven Rautenberg
Hallo zusammen
Ich habe ein Problem und das sieht folgendermassen aus. Ich bekomme nie das richtige Resultat für die Variabel $anz aus folgendem Script:
<?
session_register(user);
session_register(style);
if($style == "")
{
$style = "blau";
}
echo '
<link rel="stylesheet" type="text/css" href="style/'.$style.'/'.$style.'.css">
<center>
Willkommen '.$user.'
<br>
<table border="0" align="center">';
include("config/connect_config.php");
mysql_select_db ("stargate_forum", $vk)
or die ("Keine Verbindung zur Datenbank");
$z = mysql_query("SELECT id
FROM forum\_foren
");
$y = mysql_fetch_array($z);
$anz = count($y);
for($i = 1; $i <= $anz; $i++)
{
$a = mysql_query("SELECT name
FROM forum\_foren
WHERE id='$i'");
$titel = mysql_fetch_array($a);
$b = mysql_query("SELECT thema
FROM forum\_foren
WHERE id='$i'");
$thema = mysql_fetch_array($b);
$c = mysql_query("SELECT moderator
FROM forum\_foren
WHERE id='$i'");
$poster = mysql_fetch_array($c);
$d = mysql_query("SELECT erstellt
FROM forum\_foren
WHERE id='$i'");
$datum = mysql_fetch_array($d);
echo '
<tr>
<td width="45" height="30" background="style/'.$style.'/block.png"></td>
<td width="600" height="30" colspan="2" background="style/'.$style.'/line.png"><B>'.$titel[0].'</B></td>
</tr>
<tr>
<td width="45"></td>
<td width="500">'.$thema[0].'</td>
<td width="100">Moderator:<br>'.$poster[0].'<br>Erstellt am:<br>'.$datum[0].'</td>
</tr>
';
}
echo "</table>";
?>
An was kann das liegen? Wäre echt froh wenn mir Jemand helfen könnte.
Hallo!
Ich bekomme nie das richtige Resultat für die Variabel $anz aus folgendem Script
Probier mal http://at.php.net/manual/de/function.mysql-num-rows.php.
Beste Grüße
Viennamade
Danke viel mals.
Funktioniert prima.
Hello,
und noch was...
für dein Problem hätte es genügt:
$z = mysql_query("SELECT id
FROM forum\_foren
");
$y = mysql_fetch_array($z);
$anz = count($y);
dieses Stückchen zu posten.
Einen Lösungsweg hat Dir Vienna schon erzählt, ist aber nicht unbedingt der beste. Wenn man nämlich nur die Anzahl von Datansätzen wissen will, dann fragt man die Datanbank nur danach und nlässt sich nicht Daten kommen, die man nicht verwendet.
also
$res = mysql_query("SELECT count(*) as anz FROM forum\_foren
");
$_rec = mysql_fetch_array($res)
echo $_rec['anz'];
Liebe Grüße aus http://www.braunschweig.de
Tom
Moin!
Ich habe ein Problem und das sieht folgendermassen aus. Ich bekomme nie das richtige Resultat für die Variabel $anz aus folgendem Script:
Das könnte daran liegen, dass du so ziemlich die ineffizienteste Variante einer Datenbankvergewaltigung gewählt hast (DatenbankABFRAGE kann man das schon nicht mehr nennen).
$z = mysql_query("SELECT
id
FROMforum\_foren
");
$a = mysql_query("SELECTname
FROMforum\_foren
WHERE id='$i'");
$b = mysql_query("SELECTthema
FROMforum\_foren
WHERE id='$i'");
$c = mysql_query("SELECTmoderator
FROMforum\_foren
WHERE id='$i'");
$d = mysql_query("SELECTerstellt
FROMforum\_foren
WHERE id='$i'");
Du willst für alle IDs, die in der DB enthalten sind, die Felder name, thema, moderator und erstellt wissen.
Mach EINMAL eine DB-Abfrage und werte alle sich daraus ergebenden Zeile aus:
$result = mysql_query("SELECT id, name, thema, moderator, erstellt FROM forum_foren");
while ($zeile = mysql_fetch_assoc($result))
{
echo "ID: ".$zeile['id']."<br>";
echo "Name: ".$zeile['name']."<br>";
// und so weiter, und so fort...
}
- Sven Rautenberg