Seite 1 von 2

anzahl der db einträge funktion geht nicht

Verfasst: 07.12.2006 15:48
von langeweile
habe folgenden code geschrieben:

Code: Alles auswählen

<?php
include ("dbconnect.php");
$db_zeilen = "SELECT count(*) as total FROM Vokabeln"; 
$db_zeilen_now = mysql_query($db_zeilen); 
$row = mysql_fetch_row($db_zeilen_now); 
$zeilen = $row['total'];
echo "in der datenbank befinden sich $zeilen Einträge";
?>

aber wenn ich die datein aufrufe steht da nur:
in der datenbank befinden sich Einträge

es wird also die varible zeilen nicht angezeigt

wieso???

Verfasst: 07.12.2006 16:08
von BB-BF-BM
probier mal mysql_fetch_assoc

Verfasst: 07.12.2006 16:13
von Jan500
guck dir auch mal mysql_num_rows an... und mach mal count(1) statt count(*) geht schneller:)

Jan

Verfasst: 07.12.2006 17:21
von langeweile
ok danke es geht

Verfasst: 07.12.2006 18:19
von langeweile
aber ich habe jetzt noch eine frage, ich habe jetzt den code so umgeschrieben:

Code: Alles auswählen

<?php
include ("dbconnect.php");
$wort = "verb";
$db_zeilen = "SELECT count(*) as total FROM Vokabeln WHERE wortart=$wort"; 
$db_zeilen_now = mysql_query($db_zeilen); 
$row = mysql_fetch_assoc($db_zeilen_now); 
$zeilen = $row['total'];
echo "in der datenbank befinden sich $zeilen verben";
?>

damit will ich berechnen, wie viele wörter in der tabelle sind, bei denen in der tabelle wortart verb steht.
aber wenn ich es ausführe kommt der fehler

Code: Alles auswählen

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/web12/html/hilde/latein/zeile.php on line 6

Verfasst: 07.12.2006 18:44
von Banger
langeweile hat geschrieben:damit will ich berechnen, wie viele wörter in der tabelle sind, bei denen in der tabelle wortart verb steht.
aber wenn ich es ausführe kommt der fehler
Strings müssen in Anführungsstrichen eingeschlossen sein, ansonsten werden sie als Spaltennamen interpretiert.

Richtig (und in Bezug auf die reine Zählung einfacher) wäre es so:

Code: Alles auswählen

<?php
require('dbconnect.php');
$wort = "verb";
$db_zeilen = "SELECT COUNT(1) FROM `Vokabeln` WHERE `wortart`='$wort'"; 
$db_zeilen_now = mysql_query($db_zeilen) or trigger_error(mysql_error()); 
$zeilen = mysql_result($db_zeilen_now, 0, 0);
echo "in der datenbank befinden sich $zeilen verben";
?>

Verfasst: 07.12.2006 18:58
von langeweile
ok danke das geht, aber was ist der unterschied zwischen

inlcude und require?

Verfasst: 07.12.2006 20:36
von Jensemann
langeweile hat geschrieben:ok danke das geht, aber was ist der unterschied zwischen

inlcude und require?
Der Link scheint mir das am besten zu erklären:

http://www.webinteger.net/magazin/artic ... d-include/

Verfasst: 08.12.2006 07:10
von langeweile
ok danke, ich habe es mir durchgelesen

aber warum hat banger in diesem code require benutzt, wenn da doch gar keine schleife o.ä. vorhanden ist, gibt es dafür einen grund oder einfach so?

Verfasst: 08.12.2006 12:41
von Banger
langeweile hat geschrieben:aber warum hat banger in diesem code require benutzt, wenn da doch gar keine schleife o.ä. vorhanden ist, gibt es dafür einen grund oder einfach so?
Ich habe es mir angewöhnt, "existenziell notwendige" zusätzliche Skripte immer per require() bzw. require_once() einzubinden; der Grund dafür ist nicht zuletzt im letzten Abschnitt des von Jensemann verlinkten Artikels zu finden:
Während include() bei einem Aufruf einer nicht existierenden Datei lediglich eine Warnung ausgibt, unterbricht require() komplett die Ausführung des Skriptes und gibt einen Fehler aus.