Problem!

dennislassiter

Erfahrenes Mitglied
Hab mein Problem jetzt in einem eigenen Thema...


PHP:
<?
include("dbconnect.php");

$timestamp = time();
$datum = date("dmy",$timestamp);

$sql= mysql_query("CREATE TABLE IF NOT EXISTS $datum");
$res = mysql_query("SELECT * FROM $datum, anid WHERE userid = $id AND anid=$sponsor");

if(!$res) {


 while($row = mysql_fetch_object($res))
    {
     $eintrag = "INSERT INTO $datum (userid, pluspoints, mepluscent, anid) VALUES ('$id', '$row->points', '$row->cent', '$sponsor')";
     $eintragen = mysql_query($eintrag);
    }



}
?>


Jetzt kommt:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/htdocs/v026578/test/best2.php on line 13
 
Code:
if(!$res) {


 while($row = mysql_fetch_object($res))
    {
     $eintrag = "INSERT INTO $datum (userid, pluspoints, mepluscent, anid) VALUES ('$id', '$row->points', '$row->cent', '$sponsor')";
     $eintragen = mysql_query($eintrag);
    }



}

kann ja nicht funktionieren, da du ja die schleife ausfuehren moechtest, wenn keine verbindung zur db aufgebaut wird.

Code:
if($res) {


 while($row = mysql_fetch_object($res))
    {
     $eintrag = "INSERT INTO $datum (userid, pluspoints, mepluscent, anid) VALUES ('$id', '$row->points', '$row->cent', '$sponsor')";
     $eintragen = mysql_query($eintrag);
    }



}

wenn dann so... auch wenn die if($res) abfrage schwachsinn ist.. :-)
 
das hätte dann aber eine ganz andere bedeutung....

es soll es nur ausführen, wenn die daten so noch nicht in der Tabelle mit namen des heutigen datums stehen...
 
nö,

weil:

if(!$res) {

sagt das der folgende teil nur ausgefuehrt werden soll, wenn keine verbindung/result zu db stattgefunden hat.

womit:

while($row = mysql_fetch_object($res))

in diesem augenblick nutzlos geworden ist, da du kein object als result aus der db bekommen kannst.


:-)

ahso. jetzt..

mach es doch so:

PHP:
include("dbconnect.php");

$timestamp = time();
$datum = date("dmy",$timestamp);

$sql= mysql_query("CREATE TABLE IF NOT EXISTS $datum");
$res = mysql_query("SELECT * FROM $datum, anid WHERE userid = $id AND anid=$sponsor");
if (mysql_num_rows($res) = 0)
 {
     $eintrag = "INSERT INTO $datum (userid, pluspoints, mepluscent, anid) VALUES ('$id', '$row->points', '$row->cent', '$sponsor')";
     $eintragen = mysql_query($eintrag);
    }



}

die methode von asphyxia mit *_num_rows ist sogar noch besser..
 
Zuletzt bearbeitet:
du kriegst aber in jedem fall ein recordset zurück, auch wenn die tabelle keine daten enthält. dann hat die zurückgegebene tabelle aber keine datensätze. also:
PHP:
if (mysql_num_rows($res) == 0)
{
    // ...
}

korrigiert mich, wenn ich da falsch liege. bei mysql-recordsets bin ich da nicht ganz sicher.

// schon wieder zu langsam... :rolleyes:
 
Zuletzt bearbeitet:
Original geschrieben von loki2002
nö,

weil:

if(!$res) {

sagt das der folgende teil nur ausgefuehrt werden soll, wenn keine verbindung/result zu db stattgefunden hat.

womit:

while($row = mysql_fetch_object($res))

in diesem augenblick nutzlos geworden ist, da du kein object als result aus der db bekommen kannst.


:-)

ahso. jetzt..

mach es doch so:

PHP:
include("dbconnect.php");

$timestamp = time();
$datum = date("dmy",$timestamp);

$sql= mysql_query("CREATE TABLE IF NOT EXISTS $datum");
$res = mysql_query("SELECT * FROM $datum, anid WHERE userid = $id AND anid=$sponsor");
if (mysql_num_rows($res) = 0)
 {
     $eintrag = "INSERT INTO $datum (userid, pluspoints, mepluscent, anid) VALUES ('$id', '$row->points', '$row->cent', '$sponsor')";
     $eintragen = mysql_query($eintrag);
    }



}


die methode von asphyxia mit *_num_rows ist sogar noch besser..

Parse error: parse error, unexpected '=' in /www/htdocs/v026578/test/best2.php on line 9
 
währe nicht:

if (mysql_num_rows($res) < 0)

besser?
Dann kommt nicht mehr das mit dem

unexpected '='

aber es kommt

unexpected '}'

und

Fehlt da jetzt nicht die while-schleife?
weil jetzt ist ja $row-> undefiniert, oder?
 
Bei der if-Abfrage fehlt ein Gleicheitszeichen:

Code:
if (mysql_num_rows($res) = 0)

so nicht, sondern:

Code:
if (mysql_num_rows($res) == 0)
 
Zurück