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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
08.05.2007, 18:55:03
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 9
|
|
MySQL-Fehler
Servus zusammen.
Bin eigentlich mit den gängigsten Programmier-Dingen vertraut. SQL-mäßig sieht es aber ganz mau aus. Ich hab jetzt ein Script, dass ziemlich stresst. Könnt ihr da mal drüberschauen?
In zeile 51 wind ein Fehler angezeigt. Um die Suche zu verkürzen: die fünfte von unten.
Ich habe nun schon einmal einen Underscore eingefüht: "$cnt = mysql_num(hier:_)rows($result);" Trotzdem funzt es nicht. Wenn ich ein bisschen rumtrickse und das Gefühl habe, dass alles stimmen müsste, wird dann in Zeile 16 ein Fehler angegeben.
Kann mir bitte jemand von euch weiterhelfen?
Vielen Dank und liebe Grüße
Job
<?
if(!isset($_POST))
$_POST = $HTTP_POST_VARS;
if(!isset($_GET))
$_GET = $HTTP_GET_VARS;
require("../common/include.php");
$db=mysql_connect("$address", "$dbuser", "$dbpasswd");
$action = $_POST['action'];
$session = $_GET['session'];
if(!isset($session))
$session = $_POST['session'];
if(!isset($action))
$action = $_GET['action'];
$helpx = mysql_db_query("$dbname", "select * from tblsession where strSessionid='$session'");
$userid= mysql_result($helpx, 0, "intUser");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../common/style.css">
<title>Titel</title>
<script language="javascript">
</script>
</head>
<body style="border:none" topmargin="2" leftmargin="2" bottommargin="2" rightmargin="2" marginheight="0" marginwidth="0" bgcolor="whitesmoke" style="background-image:url(./pic/sw_h.gif); background-repeat:repeat-y;">
<?
if(!isset($action))
{?>
<table border="0" cellpadding="4" cellspacing="8" width="100%" class="ttable">
<tr>
<td style="color:white">
<strong>Betreff</strong>
</td>
<td style="color:white">
<strong>Von</strong>
</td>
<td style="color:white">
<strong>gesendet am</strong>
</td>
<td>
</td>
</tr>
<?
$SQL = "SELECT msg.*, tblgamer.strAlias as strFromName from tblmessage as msg".
" LEFT JOIN tblgamer on tblgamer.lngIndex=msg.lngUser_ID".
" WHERE lngUserToID=$userid ORDER BY dtmCreate DESC";
$result = mysql_db_query($dbname, $SQL);
echo mysql_error
$cnt = mysql_numrows($result);
for($i = 0; $i < $cnt; $i++)
{
?>
|
08.05.2007, 19:05:29
|
Member
|
|
Registriert seit: Aug 2005
Beiträge: 644
|
|
AW: MySQL-Fehler
Wäre ganz gut zu wissen wie der Fehler lautet ...
Oder hab ich den überlesen?
Der Underscore muss auf jeden Fall mal hin: mysql_num_rows()
|
08.05.2007, 19:11:50
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 9
|
|
AW: MySQL-Fehler
Sorry, hab ich doch tatsächlich vergessen.
syntax error, unexpected T_VARIABLE, expecting ',' or ';' in Line 51
|
08.05.2007, 19:40:05
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: MySQL-Fehler
Der Fehler liegt am Ende der Zeile 50, du hast das Semikolon vergessen. In Zeile 51 muss der Befehl "mysql_num_rows()" heißen, wie MatMel schon sagte.
|
08.05.2007, 19:55:28
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 9
|
|
AW: MySQL-Fehler
Super, dafür schon einmal vielen Dank!!
Jetzt erhalte ich folgende Meldungen:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4 in .../message.php on line 16
mysql_error
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in .../message.php on line 51
Der Text im unteren Bereich lautet jetzt:
<?
$SQL = "SELECT msg.*, tblgamer.strAlias as strFromName from tblmessage as msg".
" LEFT JOIN tblgamer on tblgamer.lngIndex=msg.lngUser_ID".
" WHERE lngUserToID=$userid ORDER BY dtmCreate DESC";
$result = mysql_db_query($dbname, $SQL);
echo mysql_error;
$cnt = mysql_num_rows($result); (Das hier ist besagte Zeile 51)
for($i = 0; $i < $cnt; $i++)
{
?>
Geändert von job (08.05.2007 um 20:03:23 Uhr)
|
08.05.2007, 20:17:00
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: MySQL-Fehler
in der Zeile
PHP-Code:
" WHERE lngUserToID=$userid ORDER BY dtmCreate DESC";
fehlt doch was oder? Gehört lngUserToID vieleicht zu msg.lngUserToID oder tblgamer.lngUserToID? dtmCreate scheint ja auch noch irgendwo dazu zu gehören ( msg.dtmCreate oder tblgamer.dtmCreate).
|
08.05.2007, 20:22:09
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 9
|
|
AW: MySQL-Fehler
Wie gesagt, von SQL habe ich keine Ahnung. Daher muss ich gestehen, dass ich gerade kein Wort verstanden habe. Kannst du das nochmal eben für einen Volldeppen erklären?
Hab das Script nicht selber erstellt und den Autoren gibt es nicht mehr. Daher hänge ich so in den Seilen...
Geändert von job (08.05.2007 um 20:23:26 Uhr)
|
08.05.2007, 20:55:58
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: MySQL-Fehler
Versuch mal folgendes:
PHP-Code:
$SQL = "SELECT a.*, b.strAlias as strFromName from tblmessage a ";
$SQL.= "LEFT JOIN tblgamer b on b.lngIndex=a.lngUser_ID ";
Wenn das keine fehlermeldung mehr zurückgibt kannst du mal folgendes dazuhängen:
PHP-Code:
$SQL.= "WHERE b.lngUserToID=$userid ";
//oder $SQL.= "WHERE a.lngUserToID=$userid ";
und wenn das klappt dann:
PHP-Code:
$SQL.= "ORDER BY a.dtmCreate DESC";
//oder $SQL.= "ORDER BY b.dtmCreate DESC";
Nun die Erläuterungen: mit a. oder b. greifst du auf eine Tabelle zu die bei "from tblmessage a" mit a definiert wird und bei "LEFT JOIN tblgamer b" mit b definiert wird. Mit a.* fragst du also alle Felder der Tabelle a (also tblmessage) ab. zusätzlich fragst du mit b.strAlias die Zelle strAlias der tabelle b (also tblgamer) ab. In der Where Klausel und Order By Klasel musst du dann aber auch auf irgendeine Tabelle verweisen (a. oder b.). Ich habe die Aliasnamen auf a. und b. geändert, weil es so hoffentlich einfacher zu verstehen ist.
Geändert von Lord Ganymed (08.05.2007 um 20:56:28 Uhr)
|
08.05.2007, 22:14:19
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 9
|
|
AW: MySQL-Fehler
Es tut mir wahnsinnig leid, aber ich bekomm das einfach nicht hin. Ich hoffe, dass ich dir nicht zu sehr auf den Zwirn gehe, aber kannst du mir die "a"s und "b"s vielleicht mit dem eigentlichen Text ersetzen? Ich habs nämlich grad versucht zu interpretieren und offensichtlich völligen Nonsens eingegeben. Danach ging nämlich gar nichts mehr.
Sorry und schonmal vielen Dank im Voraus. Mensch, komm ich mir vielleicht hilflos vor!!!
Geändert von job (09.05.2007 um 00:28:00 Uhr)
|
09.05.2007, 08:41:31
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: MySQL-Fehler
Also vorher wars so:
PHP-Code:
$SQL = "SELECT msg.*, tblgamer.strAlias as strFromName from tblmessage msg ";
$SQL.= "LEFT JOIN tblgamer tblgamer on tblgamer.lngIndex=msg.lngUser_ID "; //bis hier hin Versuch 1
$SQL.= "WHERE tblgamer.lngUserToID=$userid ";
//oder $SQL.= "WHERE msg.lngUserToID=$userid "; // Versuch 2
$SQL.= "ORDER BY msg.dtmCreate DESC";
//oder $SQL.= "ORDER BY tblgamer.dtmCreate DESC"; //Versuch 3
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:47:06 Uhr.
|