| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

22-06-2009, 18:26
|
|
tb_michi
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 7
|
|
Warning: mysql_num_rows()
Hi,
ich kenn mich nicht wirklich gut mit PHP aus und ich hab beruflich ne seite zu warten.
auf die seite gehe kommt folgende Fehlermeldung:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
in der datenbank tss_mitarbeitergruppen sind die mitarbeitergruppen drin und in tss_mitarbeiter stehen die informationen die geladen werden sollten.
kann mir da jemand helfen???
danke.
Geändert von tb_michi (25-06-2009 um 18:26 Uhr)
|

22-06-2009, 18:33
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Bau die ersten drei Zeilen mal so um:
PHP-Code:
$query = "SELECT ...";
$result3 = mysql_query($query) or die(mysql_error() . $query);
if($num3 = mysql_num_rows($result3)) {
Daraufhin solltest du eine Fehlermeldung sehen und die fehlerverursachende SQL-Abfrage. Da das sensible Informationen sind, solltest du das nicht in die Live-Seite einbauen!
|

22-06-2009, 18:57
|
|
tb_michi
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 7
|
|
und was genau soll dann da passieren?. kommt irgendwie nix.
|

22-06-2009, 19:01
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
@tb_michi
bitte php-tags benutzen (  ) und den code formatieren. so können wir nicht viel erkennen.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

22-06-2009, 19:06
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Hab ich doch geschrieben: Es sollte eine Fehlermeldung erscheinen. Zeig mal den aktuellen Code und wenn es geht einen Link auf die Seite, wo man das mal selbst sehen kann.
|

22-06-2009, 19:06
|
|
tb_michi
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 7
|
|
PHP-Code:
<?php // ---- Mitarbeiter ---------------------------------------------------------------------------
$result3 = mysql_query("SELECT tss_mitarbeitergruppe.Bezeichnung,tss_mitarbeiter.* FROM tss_mitarbeiter LEFT JOIN tss_mitarbeitergruppe ON tss_mitarbeiter.MG_Nr=tss_mitarbeitergruppe.MG_Nr WHERE tss_mitarbeitergruppe.TSS='$ums_tss' AND tss_mitarbeiter.MA_Nr='$MMA_Nr' AND _geloescht='0'"); if($num3 = mysql_num_rows($result3)) { while($row3 = mysql_fetch_array($result3)) { $MG_Nr = $row3['MG_Nr']; $Bezeichnung = htmlentities(stripslashes($row3['Bezeichnung'])); $MA_Nr =$row3['MA_Nr']; $Name = htmlentities(stripslashes($row3['Name'])); $Vorname = htmlentities(stripslashes($row3['Vorname'])); $Untertitel = htmlentities(stripslashes($row3['Untertitel'])); $Bild = htmlentities(stripslashes($row3['Bild'])); $e_Mail = htmlentities(stripslashes($row3['e_Mail'])); $Spruch = htmlentities(stripslashes($row3['Spruch'])); $Aufgabengebiete = htmlentities(stripslashes($row3['Aufgabengebiete'])); $Ausbildung = htmlentities(stripslashes($row3['Ausbildung'])); $Hobbys = htmlentities(stripslashes($row3['Hobbys'])); $Wasichnichtleidenkann = htmlentities(stripslashes($row3['Wasichnichtleidenkann']));
$a++; } mysql_free_result($result3); } else { $_err_titel="FEHLER"; $_err_text="Mitarbeiter NICHT gefunden"; include("../_global/_fehlerseite.inc"); }
?>
das ist der code der seite.
die seite ist: http://www.tanzschule-backhausen.de/....php?MMA_Nr=24
Geändert von Kropff (22-06-2009 um 19:22 Uhr)
|

22-06-2009, 19:08
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Schön dass du die PHP-Tags nutzt. Aber bitte brich den Code noch um, wir wollen nicht bis Russland scrollen. Danke.
Und wo sind jetzt eigentlich die Änderungen im Code, hä?
|

22-06-2009, 19:08
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von tb_michi
das ist der code der seite.
|
Und wo hast du das vorgeschlagene eingebaut?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

22-06-2009, 19:12
|
|
tb_michi
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 7
|
|
PHP-Code:
<?php // ---- Mitarbeiter ---------------------------------------------------------------------------
$query = "SELECT ..."; $result3 = mysql_query("SELECT tss_mitarbeitergruppe.Bezeichnung,tss_mitarbeiter.* FROM tss_mitarbeiter LEFT JOIN tss_mitarbeitergruppe ON tss_mitarbeiter.MG_Nr=tss_mitarbeitergruppe.MG_Nr WHERE tss_mitarbeitergruppe.TSS='$ums_tss' AND tss_mitarbeiter.MA_Nr='$MMA_Nr' AND _geloescht='0'") or die(mysql_error() . $query); if($num3 = mysql_num_rows($result3)) { while($row3 = mysql_fetch_array($result3)) { $MG_Nr = $row3['MG_Nr']; $Bezeichnung = htmlentities(stripslashes($row3['Bezeichnung'])); $MA_Nr =$row3['MA_Nr']; $Name = htmlentities(stripslashes($row3['Name'])); $Vorname = htmlentities(stripslashes($row3['Vorname'])); $Untertitel = htmlentities(stripslashes($row3['Untertitel'])); $Bild = htmlentities(stripslashes($row3['Bild'])); $e_Mail = htmlentities(stripslashes($row3['e_Mail'])); $Spruch = htmlentities(stripslashes($row3['Spruch'])); $Aufgabengebiete = htmlentities(stripslashes($row3['Aufgabengebiete'])); $Ausbildung = htmlentities(stripslashes($row3['Ausbildung'])); $Hobbys = htmlentities(stripslashes($row3['Hobbys'])); $Wasichnichtleidenkann = htmlentities(stripslashes($row3['Wasichnichtleidenkann']));
$a++; } mysql_free_result($result3); } else { $_err_titel="FEHLER"; $_err_text="Mitarbeiter NICHT gefunden"; include("../_global/_fehlerseite.inc"); }
?>
so jetzt. sorry
Geändert von Kropff (22-06-2009 um 19:22 Uhr)
|

22-06-2009, 19:23
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Nein, so nicht. Ich habe $query in meinem Code an mysql_query() übergeben. Mach das bitte auch, sonst hat die Aktion überhaupt keinen Sinn.
Statt der drei Punkte in $query sollst du natürlich deine ganze Query einsetzen.
|

22-06-2009, 19:24
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
fällt dir hier nichts auf
PHP-Code:
if($num3 = mysql_num_rows($result3))
da fehlt doch wohl was, oder?
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

22-06-2009, 19:27
|
|
tb_michi
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 7
|
|
zu meiner schande muss ich sagen "nein" ich kenn mich nicht wirklich toll mit php aus. bitte helft mir ;-)
|

22-06-2009, 20:13
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
Zitat von tb_michi
zu meiner schande muss ich sagen "nein" ich kenn mich nicht wirklich toll mit php aus. bitte helft mir ;-)
|
wenn du etwas vergleichen willst, wieviele gleichheitszeichen benötigst du? eins oder zwei?
also wann ist deinen bedingung wahr? immer. siehe auch hier. btw: den abschnitt solltest du dir mal komplett durchlesen, da gehts um elementare grundlagen.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

22-06-2009, 20:22
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Kropff
fällt dir hier nichts auf
PHP-Code:
if($num3 = mysql_num_rows($result3))
da fehlt doch wohl was, oder?
|
Das fragt ganz einfach ab, ob es überhaupt Ergebnisdatensätze gibt.
(Die Variable $num3 wird zwar nachher im [gezeigten] Code nicht mehr verwendet, aber das ist erst mal unerheblich.)
Zitat:
|
also wann ist deinen bedingung wahr? immer.
|
Nein.
Der Boole'sche Wahrheitswert eines Zuweisungsausdrucks entspricht immer dem, was zugewiesen wurde.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

22-06-2009, 20:24
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
@Kropff: Der Wert einer Zuweisung ist der zugewiesene Wert. Eine Zuweisung als if-Bedinung ergibt also true, wenn die rechte Seite true ergibt. mysql_num_rows() liefert ein int. Die Bedingung liefert also ein int. PHP castet das zu bool. Folglich wird die Bedingung nicht wahr, wenn mysql_num_rows() 0 oder false liefert.
Das Beispiel in deinem Tutorial ergibt immer true, weil (bool)'bumms' eben true ist.
In der if-Bedingung unseres Kandidaten fehlt nichts. Es ist eher etwas zuviel. Das "$num3 =" - braucht er nämlich gar nicht. Ebenso braucht er das $a++ weiter unten nicht. Aber soweit kommt der Interpreter bisher gar nicht. Er scheitert schon beim mysql_num_rows() und die Ursache ist ein fehlerhaftes SQL-Statement.
Geändert von onemorenerd (22-06-2009 um 20:26 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|