Hallo,
ich habe eine ganz kurze Frage.
Ich habe hier ein Code um eine Spalte zu zählen.
Man kann aber nur Zählen wenn auch eine Zahl da steht.
Cih will jetzt aber dass er ein bestimmtes Wort zählen soll.
Wie muss ich den Code abändern ?
[PHP]$sum = mysql_query(„SELECT SUM(SPALTE) as total FROM TABELLE“);
$result = mysql_fetch_array($sum);
echo $result[„total“]; [/PHP]
Vielen Dank
Gruß
Fabi
Genauer gesagt hast Du einen Quellcode der eine Summierung vornimmt. Dein Ziel ist aber zu zählen wie oft ein String in einer Spalte vorkommt. Das sollte so möglich sein:
SELECT COUNT(id) anzahl_vorkommen
FROM TABELLE
WHERE spalte LIKE '%wort%'
GROUP BY spalte;
Wie meinst du das so:[PHP]<?php
$sum = ("SELECT COUNT(id) anzahl_vorkommen
FROM Standdienst
WHERE zeita LIKE '%OK%'
GROUP BY zeita;");
$sumres = mysql_query($sum);
echo "Es haben sich schon $sumres Leute Angemeldet";
?>[/PHP]
Es funktioniert so immer noch nicht.
Hier nochmal meine Daten:
Das Wort was gezählt werden soll = OK
Tabelle = Standdienst
Tabellenspalte = zeita
Wie muss ich das dann machen.
Wäre dir sehr, sehr dankbar wenn du mir das verraten könntest.
Bitte auch über das EVA-Prinzip informieren (und Code – noch mehr – in Funktionen auszulagern, wäre auch nicht schlecht). Das macht solche Skripte erheblich übersichtlicher und pflegeleichter.
Habs jetzt auch umgeändert geh aber davon aus dass ich es falsch umgeändert habe. (Es funktioniert nämlich nicht.
Kommte eine Fehlermeldung: Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in /var/customers/webs/fabiii9/sommer/Standdienst.php on line 166 Call Stack: 0.0003 695152 1. {main}() /var/customers/webs/fabiii9/sommer/Standdienst.php:0 0.0019 706224 2. mysql_fetch_array() /var/customers/webs/fabiii9/sommer/Standdienst.php:166 Es haben sich schon Leute Angemeldet
Ich habe auch davon erlichgesagt keine Ahnung.
SO hab ichs geändert:
[PHP]<?php
$sum = ("SELECT COUNT(id) anzahl_vorkommen
FROM Standdienst
WHERE zeita LIKE '%OK%'
GROUP BY zeita;");
$sumres = mysql_fetch_array($sum);
echo "Es haben sich schon $sumres Leute Angemeldet";
?>[/PHP]
Daher habe ich eine Frage.
Ich weis dass man sowas eigentlich nicht macht aber könntest du mir diesen Code sagen wie ich es dann schaffe dass des passiert was ich will ???
Wäre wirklich toll von dir.
Ich bin dann auch mit der Website fertig.
Kommen also keine Frage mehr.
Oder kennst du irgendein Video wo des mit dem Zählen von Wörtern erklärt wird.
Weis einfach nicht mehr nach was ich noch suchen soll.
Ja, weil die Fragestellung nicht deutlich war. Das von threadi vorgeschlagene Gruppieren war selbstverständlich sinnlos. Ich dachte der Ersteller des Themas wollte die verschiedenen Wörter zählen, die in der Spalte vorkamen.
Hallo,
Tut mir Leid wenn ich mich schlecht ausgedrückt habe.
Also in dieser Spalte steht entweder „OK“ oder nichts.
Diese Spalte wird nämlich mit einem Auswahlfeld „angesprochen“.
Ich will jetzt zählen wie oft praktisch das Wort OK drinsteht.
Dafür bräuchte ich einen Code.
Tut mir leid für diese Missverständnis.
Du musst deinen Query (in deinem Falle $sum) ersteinmal ausführen (mittels mysql_query()). Daraus bekommst du eine resource, die du dann mit mysql_fetch_array() als Array darstellen kannst. Nichts anderes sagt dir die Fehlermeldung.
Hallo,
vielen Dank für deine Antwort.
Habs jetzt geändert in:[PHP]<?php
$sum = ("SELECT COUNT(id) anzahl_vorkommen
FROM Standdienst
WHERE zeita LIKE '%OK%' ;");
$sumresa = mysql_query($sum);
$sumresb = mysql_fetch_array($sumresa);
echo "Es haben sich schon $sumresb Leute Angemeldet";
?>[/PHP]
funktioniert aber immer noch nicht.
Es kommt dieser Fehler:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/customers/webs/fabiii9/sommer/Standdienst.php on line 172 Call Stack: 0.0004 711544 1. {main}() /var/customers/webs/fabiii9/sommer/Standdienst.php:0 0.0013 723776 2. mysql_fetch_array() /var/customers/webs/fabiii9/sommer/Standdienst.php:172 Es haben sich schon Leute Angemeldet
Diese Fehlermeldung sagt dir, dass $sumresa kein resource, sondern ein Boolean ist (sprich TRUE oder FALSE). Per Definition gibt mysql_query() bei SELECT-Abfragen nur dann FALSE zurück, wenn irgendetwas schief gelaufen ist.
Vielleicht versuchst du mal „anzahl_vorkommen“ aus deinem Query rauszunehmen bzw zu schreiben „AS anzahl_vorkommen“