Datensätze zählen und in Variable schreiben
Honk
- php
Tach auch,
könnte mal kurz Hilfe gebrauchen.
Ich möchte alle meine Datensätze zählen, die in der Spalte Rubrik die Zahl 12 drin stehen haben und diesen Wert dann ausgeben. Wie bekomme ich diesen Wert in eine Variable geschrieben? Bisher habe ich es so versucht:
$result=mysql_query("SELECT * FROM meinetabelle WHERE rubrik="12" ");
echo"$result";
geht nicht!
thx
Honk
Mahlzeit Honk,
$result=mysql_query("SELECT * FROM meinetabelle WHERE rubrik="12" ");
echo"$result";geht nicht!
1. ist "geht nicht" keine hilfreiche Fehlerbeschreibung und
2. ist das kein Wunder - Quizfrage: welchen Rückgabewert liefert mysql_query()?
MfG,
EKKi
Hi EKKi,
ich habe nochmal rumprobiert:
$query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
$result = mysql_query($query) or die("Anfrage fehlgeschlagen");
$line = mysql_fetch_array($result, MYSQL_ASSOC);
foreach ($line as $col_value)
{
$anzahl = $col_value;
}
echo"$anzahl";
Da erzählt er mir jetzt "Anfrage fehlgeschlagen".
Wenn ich die Select-Anweisung in der Datenbank ausführe funzt es...
noch ne Idee?
Hello,
$query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
Da erzählt er mir jetzt "Anfrage fehlgeschlagen".
Welchen Spaltentyp hat rubrik
?
Ist das eine numerischer oder ein String-Typ?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
echo $begrüßung;
» $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
» Da erzählt er mir jetzt "Anfrage fehlgeschlagen".Welchen Spaltentyp hat
rubrik
?
Ist das eine numerischer oder ein String-Typ?
Das ist egal, MySQL typumwandelt problemlos zwischen String- und Zahlentypen. Du hast im Zitat eine Zeile unterschlagen. Es wird mit dem Ergebnis von mysql_query() ein weiteres Mal mysql_query() aufgerufen, was nicht sinnvoll ist und zum Fehler führt.
echo "$verabschiedung $name";
Hello,
» $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
» Da erzählt er mir jetzt "Anfrage fehlgeschlagen".Welchen Spaltentyp hat
rubrik
?
Ist das eine numerischer oder ein String-Typ?Das ist egal, MySQL typumwandelt problemlos zwischen String- und Zahlentypen.
Das sehe ich anders!
Gemeint war auch rubrik1
...
Wenn die Spalte einen Stringtyp hat, dann kann ich nicht mit 12 vergleichen, sondern muss mit '12' vergleichen. Oder wurde das inzwischen geändert?
Darüberhinaus sollte der OP die Auswertung des MySQL-Errors verbessern, oder?
http://de3.php.net/manual/en/function.mysql-error.php
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
echo $begrüßung;
» Das ist egal, MySQL typumwandelt problemlos zwischen String- und Zahlentypen.
Das sehe ich anders!
Das ist MySQL aber egal, wie du das siehst.
Wenn die Spalte einen Stringtyp hat, dann kann ich nicht mit 12 vergleichen, sondern muss mit '12' vergleichen. Oder wurde das inzwischen geändert?
Es ist jedenfalls problemlos möglich, Zahlen und Strings zu vergleichen.
Darüberhinaus sollte der OP die Auswertung des MySQL-Errors verbessern, oder?
Ja schon, aber das bringt ihn in diesem Fall nicht viel weiter. Es wird einen Syntaxfehler geben à la "... near 'Ressource id #1'". Er sollte sich eher ein grundlegendes Verständnis zulegen, wie eine MySQL-Abfrage gemacht wird, welche Funktion was zurückliefert und wie die Funktionen zusammenspielen.
echo "$verabschiedung $name";
Hello,
Es ist jedenfalls problemlos möglich, Zahlen und Strings zu vergleichen.
... where numerische\_spalte
= '123'
ist selbstverständlich möglich. Ja nee is klar, Murat :-P
Aber nicht anders herum
... where string\_typ\_spalte
= 123
Dass Du das eigentlich weißt, ist mir klar. Wieso diese Verwirrung?
#----
Ist was passiert?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
echo $begrüßung;
» Es ist jedenfalls problemlos möglich, Zahlen und Strings zu vergleichen.
... wherenumerische\_spalte
= '123'
ist selbstverständlich möglich. Ja nee is klar, Murat :-P
Aber nicht anders herum
... wherestring\_typ\_spalte
= 123
Dass Du das eigentlich weißt, ist mir klar. Wieso diese Verwirrung?
Ich habe es gestern probiert und eben nochmal. Beide Varianten sind problemlos möglich. Warum sollte es einen Unterschied geben ob der String links und die Zahl rechts oder umgekehrt steht?
echo "$verabschiedung $name";
Hello,
Ich habe es gestern probiert und eben nochmal. Beide Varianten sind problemlos möglich. Warum sollte es einen Unterschied geben ob der String links und die Zahl rechts oder umgekehrt steht?
Weil es mMn früher immer zu einer Fehlermeldung geführt hat.
Ok, ist wohl nicht mehr so. Danke für die Aufklärung.
Ist also nur noch relevant, Strings, die Sonderzeichen (Leerzeichen) bezüglich der Schnittstelle enthalten zu binden oder solche in Häkchen zu setzen, die Spaltennamen entsprechen ...
[ Also für die Praxis doch besser alle :-P ]
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi,
Ist also nur noch relevant, Strings, die Sonderzeichen (Leerzeichen) bezüglich der Schnittstelle enthalten zu binden oder solche in Häkchen zu setzen, die Spaltennamen entsprechen ...
Quatsch.
Stringwerte - die nicht *zufällig* auch gültige Zahlwerte darstellen -gehören immer als solche ausgezeichnet, egal ob sie Leerzeichen enthalten oder nicht.
MfG ChrisB
Mahlzeit Honk,
$query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
Vorhin schriebst Du noch "WHERE rubrik="12"" ... was jetzt?
$result = mysql_query($query) or die("Anfrage fehlgeschlagen");
$line = mysql_fetch_array($result, MYSQL_ASSOC);
foreach ($line as $col_value)
{
$anzahl = $col_value;
}
Wieso so kompliziert? Wenn Du für "COUNT(*)" einen sinnvollen Aliasnamen vergeben würdest, könntest Du direkt auf diesen zugreifen.
echo"$anzahl";
Wieso schreibst Du eine einfache Variable in einen String?
Da erzählt er mir jetzt "Anfrage fehlgeschlagen".
Wer ist "er"? PHP? Die Datenbank (nebenbei: welche?)?
Ich wette, in der Fehlermeldung steht noch mehr - wieso vorenthältst Du Deinen Lesern (und potentiellen Helfern) wichtige Informationen?
Wenn ich die Select-Anweisung in der Datenbank ausführe funzt es...
"Funzt" ist - genauso wie "funzt net" - keine hilfreiche Problembeschreibung ...
MfG,
EKKi