Wie bekomme ich das Ergebnis eine MySQL COUNT Abfrage?
Tina
- php
Hallo,
ich habe folgende Abfrage in PHP:
$sql="SELECT COUNT(id) FROM photo_base WHERE idseller ='3'";
$res = mysql_query ($sql, $verbindung);
Wenn ich die Select Anweisung direkt an MySQL sende, bekomme ich (etwa über phpMyAdmin) das korrekte Ergebnis, also etwa "15".
Wie lautet nun die einfache php Abfrage, um dieses Ergebnis zu bekommen?
Und wenn das unlogisch ist:
Ich will eine Funktion bauen, die mir einfach nur den Wert, wie oft ein bestimmter Eintrag in einer Tabelle vorkommt, zurückliefert. Den will ich dann um 1 erhöhen und verwerten.
Danke!
Tin
Hallo,
ich habe folgende Abfrage in PHP:
$sql="SELECT
COUNT(id) as 'anzahl'
FROM
photo_base
WHERE
idseller ='3'";
$res = mysql_query ($sql, $verbindung);
$daten=mysql_fetch_assoc($res);
$count=$daten['anzahl'];
oder als Funktion:
function get_count_plus_one(&$verbindung,$tablename,$column,$where)
{
$sql_query="SELECT
COUNT($column) as 'anzahl'
FROM
$tablename
$where
";
$res = mysql_query ($sql_query, $verbindung);
if ($res===false)
{
die(mysql_error());
}
$daten=mysql_fetch_assoc($res);
return $daten['anzahl']+1;
}
Hoffe das hilft ;-)
Michael
Vielen Dank Euch beiden!
Problem gelöst.
Kuss, Tina
Hi Michael,
Hehe, zwei Deppen, eine Idee ;-)
$res = mysql_query ($sql_query, $verbindung);
if ($res===false)
{
die(mysql_error());
}
Das ließe sich aber noch zusammenfassen auf:
$res = mysql_query ($sql_query, $verbindung) OR die(mysql_error());
return $daten['anzahl']+1;
Warum plus 1? Wer weiß, ob man dass immer braucht, weshalb ich das erst im Nachhinein auf das Funktionsergebnis addieren würde.
MfG, Dennis.
Hi Tina,
Wie lautet nun die einfache php Abfrage, um dieses Ergebnis zu bekommen?
Du könntest die PHP Funktion mysql_result() nutzen, wobei du als Datensatz Nummer hier 0 angeben musst. Ich persöhnlich verwende lieber mysql_fetch_assoc(), dann solltest du aber auch deine SQL Abfrage etwas anpassen:
SELECT
COUNT(*) AS anzahl
FROM
tabelle
Dann könntest du das Ergebnis so abrufen:
$data = mysql_fetch_assoc($res);
echo $data['anzahl'];
Die Möglichkeit die Rückgaben mit mysql_fetch_assoc() in ein assozierter Array zu laden ist insbesonderen dann praktisch, wenn du mehrere Spalten abfragst.
MfG, Dennis.
Hallo, Dennis!
$data = mysql_fetch_assoc($res);
echo $data['anzahl'];
warum nicht einfacher mit [mysql_result()]( http://de2.php.net/mysql_result)?
`$data = mysql_result($res,0,'anzahl');`{:.language-sql}
freundl. Grüsse aus Berlin, Raik
Hi Raik,
warum nicht einfacher mit mysql_result()?
$data = mysql_result($res,0,'anzahl');
Da ich mysql_result() nicht so nutze, war mir das nicht so bekannt ;-)
Ist aber wieder mal ein Stelle, an der die englische Version des PHP Manulas
besser als die Deutsche ist.
MfG, Dennis.