SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 31.10.2003, 13:02:50
Idolast Idolast ist offline
Anfänger
 
Registriert seit: Oct 2003
Ort: Nürtingen
Beiträge: 24
While-Schleife: Durchläufe zählen

Hi,
Ich hab vor einiger Zeit angefangen Php zu erlernen.
Teilweise benutze ich auch die Funktionsreferenz von selfphp.
Ich habe nun aber ein kleines Problem.
Ich habe eine Tabelle in MySQL und möchte nun die Anzahl der Reihen haben in dieser Tabelle. Das wäre sehr einfach wenn ich jede Reihe haben wollte (mit mysql_num_rows() ) aber ich möchte nur die Reihen, die an einen bestimmten Wert haben.
Damit es nich ganz so kompliziert wird schreib ich kurz den Code hier rein, den ich bisher hab:

$result=mysql_query("SELECT absender,empfaenger,datum,zeit,nummer FROM normal ORDER BY nummer;");

while( $row=mysql_fetch_array($result) )
{
if($row['datum']==$date)
{
}
}


Das mit dem if klappt, das hab ich woanders auch eingesetzt und da klappt es wunderbar, da zeigt es nur die Reihen an, die eben dieses Datum haben. Das Problem is aber hier, ich will nich die Reihen anzeigen, sondern ich möchte die ANZAHL der Reihen.

Ich hoffe ihr versteht, was ich meine und könnt mir helfen :)
Mit Zitat antworten
  #2  
Alt 31.10.2003, 13:10:07
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Wenn ich das richtig durchschaut habe, dann fehlt Dir in der Abfrage die WHERE-Klausel:
SELECT absender, empfaenger, datum, zeit, nummer
FROM normal
WHERE datum='$datum'
ORDER BY nummer;

Mit den ' bin ich mir nicht ganz sicher, also vielleicht ohne.

Die Anzahl der betroffenen Felder kannst Du dann mit mysql_affected_rows() ermitteln.

Ein Tipp, um Fehler zu erkennen: mysql_query(...) or die(mysql_error());

Alles zusammen:
PHP-Code:
$result=mysql_query("SELECT absender, empfaenger, datum, zeit, nummer FROM normal WHERE datum='$datum' ORDER BY nummer;") or die(mysql_error());
echo 
mysql_affected_rows(); 
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 31.10.2003, 13:16:17
Idolast Idolast ist offline
Anfänger
 
Registriert seit: Oct 2003
Ort: Nürtingen
Beiträge: 24
Ok, Vielen Dank für die schnelle Antwort!
Was du geschrieben hast funktioniert EINWANDFREI!
Nochmals herzlichen Dank und auf Wiedersehen :)
Mit Zitat antworten
  #4  
Alt 31.10.2003, 17:25:31
Idolast Idolast ist offline
Anfänger
 
Registriert seit: Oct 2003
Ort: Nürtingen
Beiträge: 24
Es hat super funktioniert bis jetzt. Aber auf einmal tut es nicht mehr richtig. :(
Ich habe mehrere solcher Sachen in einer Datei, das heißt ich habe eine Tabelle in mysql, die öffne ich in meiner php-datei.
Dann nehm ich einmal nur den Teil dieser Tabelle, der die eine Bedingung erfüllt und später den Teil der eine andere erfüllt.
Beidesmal setz ich einfach ein mysql_affected_rows(); dahinter kann es sein, dass er nun nicht mehr weiß welche Reihen gemeint sind? Muss ich in die Klammer etwas reinschreiben um ihm klar zu machen welche?

Mein Code: (ich bastle ein kleines programm für ein projekt)

// Normaler Brief
// Normaler Brief

$resultnormal=mysql_query("SELECT auftragsart,absender,empfaenger,datum,zeit,nummer FROM post WHERE datum='$datum' AND auftragsart='normal' ORDER BY nummer;") or die(mysql_error());

$nrnormal=mysql_affected_rows();
echo "<tr height=30>";
echo "<td width=200 valign=center align=left><a href=detail.php?auftrag=normal&datum=$datum>Normaler Brief</a></td>";
echo "<td width=200 valign=center align=center>$preisnormal $</td>";
echo "<td width=200 valign=center align=center>".$nrnormal."&nbsp;</td>";

$ertragnormal=bcmul($preisnormal,$nrnormal);

echo "<td width=100 valign=center align=center>$ertragnormal $</td>";
echo "</tr>";

// Lolli-Gruß
// Lolli-Gruß

$resultlolli=mysql_query("SELECT auftragsart,absender,empfaenger,datum,zeit,nummer FROM post WHERE datum='$date' AND auftragsart='lolli' ORDER BY nummer;") or die(mysql_error());

$nrlolli=mysql_affected_rows();
echo "<tr height=30>";
echo "<td width=200 valign=center align=left><a href=detail.php?auftrag=lolli&datum=$datum>Lolli-Gruß</a></td>";
echo "<td width=200 valign=center align=center>$preislolli $</td>";
echo "<td width=200 valign=center align=center>".$nrlolli."&nbsp;</td>";

$ertraglolli=bcmul($preislolli,$nrlolli);

echo "<td width=100 valign=center align=center>$ertraglolli $</td>";
echo "</tr>";

Geändert von Idolast (31.10.2003 um 17:30:13 Uhr)
Mit Zitat antworten
  #5  
Alt 31.10.2003, 18:18:48
René_M René_M ist offline
Junior Member
 
Registriert seit: Aug 2003
Ort: Fürstenau (Uckermark, Land Brandenburg)
Beiträge: 259
Hi Idolast,

nach einer SELECT verwendet man mysql_num_rows. mysql_affected_rows nimmt man nach Update, Delete, Insert.
__________________
Gruß
René

lange Weile dann --> Webchess 2003
Mit Zitat antworten
  #6  
Alt 31.10.2003, 18:31:03
FloRos FloRos ist offline
Junior Member
 
Registriert seit: Mar 2002
Beiträge: 153
FloRos eine Nachricht über ICQ schicken
HI
du willst also die Anzahl deiner Reihen in der DB wissen stimmts?

dann musst du wirklich
mysql_num_rows();
nehmen.

bei deinem Code müsste das dann so aussehen:
$resultnormal=mysql_query("SELECT auftragsart,absender,empfaenger,datum,zeit,nummer FROM post WHERE datum='$datum' AND auftragsart='normal' ORDER BY nummer;") or die(mysql_error());

$anz=mysql_num_rows($resultnormal);
echo $anz;
__________________
Wir sehen uns in der
Programmierer Hölle ;)
Mit Zitat antworten
  #7  
Alt 31.10.2003, 18:42:14
Idolast Idolast ist offline
Anfänger
 
Registriert seit: Oct 2003
Ort: Nürtingen
Beiträge: 24
Seltsam ich dachte ich hätte das shcon ausprobiert gehabt und es hätte nicht getan. Na ja jetzt tut es jedenfalls (mit mysql_num_rows() ).
Danke :)
Mit Zitat antworten
  #8  
Alt 01.11.2003, 00:30:51
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
René und Florian, auch für Euch nochmal: Auch wenn im Manual zu PHP steht, dass mysql_affected_rows() nicht bei SELECT funktionieren soll, so klappt es doch!
Probiert es einfach mal aus, ist wohl das überzeugenste Mittel.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 01.11.2003, 00:42:25
FloRos FloRos ist offline
Junior Member
 
Registriert seit: Mar 2002
Beiträge: 153
FloRos eine Nachricht über ICQ schicken
Schon richtig c4 bloss er wollte ja nur die Anzahl "aller" Datensätze wissen..
Dafür ist nun mal mysql_num_rows();
ist ja jedem überlassen wie man es macht bloß, da es bei ihm nicht funktioniert hat haben wir Ihm halt einen alternativen Vorschlag angeboten. Und wenn es jetzt geht würde ich sagen. Das es richtig war ihm diesen Vorschlag zu unterbreiten ;-)
__________________
Wir sehen uns in der
Programmierer Hölle ;)
Mit Zitat antworten
  #10  
Alt 01.11.2003, 00:48:56
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Schon richtig c4 bloss er wollte ja nur die Anzahl "aller" Datensätze wissen..
Dafür ist nun mal mysql_num_rows();
Nee, damit gebe ich mich nicht zufrieden. :)
Er wollte die Anzahl der Datensätze haben, die dem entsprechenden Kriterien entsprechen. Das geht nunmal wunderbar mit mysql_affected_rows().

Warum es bei ihm nicht geklappt haben soll ist mir unklar und auch nicht gerade hilfreich beim argumentieren.
hm... Idolast, nutzt Du PHP 5? Vielleicht ist das dort ja endlich so, wie es im Manual steht....
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:00:40 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt