Leerer Ausdruck

benni miles

Mitglied
Hi,

hab folgendes Problem. Ich möchte etwas aus einer mysql Datenbank auslesen sofern dieser Datensatz vorhanden ist. Ist dies nicht der Fall soll "Kein Eintrag vorhanden" ausgegeben werden. Hab folgenden Ansatz:

PHP:
    if ($analyse == "")
            {
	        echo "Kein Eintrag vorhanden";
	        }
				
		
             $sql = "SELECT info FROM testtabelle WHERE ID = $analyse"; 
              if ($sql == "") 
               {
	           echo "Kein Eintrag vorhanden";
	           }
              else 
               {
	           $result = mysql_query($sql) OR die(mysql_error());
		       while($row = mysql_fetch_assoc($result)) 
		         { 
				  echo "$row[info]";
		         } 
	           }

Die Varialbe $analyse wird mittels GET übertragen.Mein Ziel ist es wenn in die Spalte info in der Tabelle testtabelle nichts eingetragen wurde sollte "kein eintrag vorhanden" ausgegeben werden und nicht nur wenn die Varialbe $analyse leer ist.

lg benni
 
Hallo,

so kann das nicht funktionieren. Du setzt die Variable $sql zuerst auf eine nichtleere Zeichenkette und prüfst dann, ob die Variable auf die leere Zeichenkette verweist. Du musst die Abfrage schon ausführen, um festzustellen, ob es passende Einträge in der Tabelle gibt oder eben nicht. Die Funktion [phpf]mysql_num_rows[/phpf] könnte sich hier als hilfreich erweisen.

Grüße,
Matthias
 
Aber auch mit mysql_num_rows muss vorher eine mysql Abfrage durchgeführt werden.
Also so in etwa:
PHP:
$sql="..."
$res=mysql_query($sql);
if (mysql_num_rows($res)==0)
{
//foo
}
else
{
//bar
}
 
Danke hab das Thema mittlerweile gelöst. Ich möchte nun ein Script machen der automatisch Datensätze nach dem Ablauf des eingegeben Datums löscht. Nur funktioniert das irgendwie nicht es wird mir aber keine Fehlermeldung ausgegeben.

mein ansatz:

PHP:
$sql = "SELECT ID,datum1, datum2 FROM testtabelle";
$result = mysql_query($sql) OR die(mysql_error());
$liste = mysql_fetch_assoc($result);


$datum = getdate();

$zahl1 = $datum[mday];
$zahl2 = $datum[mon];



$i = 0;
while ($i <= $liste[ID])
{

if(($liste[datum1] < $zahl1) && ($liste[datum2] <= $zahl2))
{
    $command ="DELETE FROM
    testtabelle WHERE ID = '$i'";
	mysql_query($command) OR die(mysql_error());   
}
$i++;
}

bin für jeden Denkanstoß dankbar. Vielleicht bin ich auch komplett falsch unterwegs :)

lg benni
 
Warum machst du das so kompliziert? Warum speicherst du das Datum nicht in einer Spalte und löscht dann gleich in SQL mit
Code:
WHERE datum < '".date("d.m.y")."'"
? Dann würedst du dir doch viele Sachen sparen.
 
Zurück