Eine Ausgabe trotz leerer Tabellen

Anassis

Grünschnabel
Hallo,
Ich steh hier gerade wohl was auffem Schlauch.
Ich wollte für mein Script eine Ignor Liste machen.
So nun zu meinem Problem.
Ich will checken lassen ob für $User=64; ein eintrag existiert.
Dieser Positiv sein soll für das script fortfahren. ABER Sollte dieser negativ sein, soll das script abbrechen und ein echo geben.
Hier ist mal mein Script:

PHP:
$sqlbefehl= "SELECT * FROM $tabelle18 WHERE userid='$User' "; 
$list= mysql_query($sqlbefehl); 
while ($buddyx = mysql_fetch_array($list)) { 

$bu = mysql_query("SELECT * FROM $tabelle2 WHERE id='$buddyx[ignorid]'"); 
$budx = mysql_fetch_array($bu); 

if ($buddyx[userid] != '' and $buddyx[userid] != 0 ){ 
   $name = "Kein User in der Datenbank"; 
    } 
exit();
else { 

$name = $budx[nickname]; 
$page = $budx[page]; 
$id = $budx[id]; 
}

Nur leider funktioniert das nicht wirklich
 
Es wäre vielleicht ganz schön, wenn du deinem Code mal etwas Struktur geben würdest. Außerdem solltest du dir angewöhnen aussagekräftige Variablennamen zu verteilen und gewisse Coding-Standards/-Richtlinien einzuhalten, dazu gehört vor allem auch, dass Schlüssel assoziativer Arrays in ANführungszeichen gesetzt werden! (Kann ich bitte Provision für diesen Satz bekommen :rolleyes: ):

PHP:
$sqlbefehl = "SELECT * FROM $tabelle18 WHERE userid='".$User."'"; 
$list = mysql_query($sqlbefehl); 
while ($buddyx = mysql_fetch_array($list)) { 
	$bu = mysql_query("SELECT * FROM $tabelle2 WHERE id='".$buddyx['ignorid']."'"); 
	$budx = mysql_fetch_array($bu); 
	if ($buddyx['userid'] != '' and $buddyx['userid'] != 0 ) { 
		$name = 'Kein User in der Datenbank'; 
	} else {
		$name = $budx['nickname']; 
		$page = $budx['page']; 
		$id = $budx['id']; 
	}
}

Ein paar Anmerkungen: Die Anweisung exit(); sollte wo im Code stehen, im IF- oder im ELSE-Zweig?
Ich verstehe deine Abfragen nicht ganz. Könntest du mal genau erläutern, was du damit willst? Um z.B. abzufragen, ob das Query überhaupt Ergebnisse zurückgeliefert hat, brauchst du lediglich den Wert von [phpf]mysql_num_rows[/phpf] abzufragen.
 
Versuch mal folgendes:
PHP:
<?php
	[…]
	$query = "
		SELECT
		        `a`.`ignorid`,
		        `a`.`userid`,
		        `b`.`id`,
		        `b`.`nickname`,
		        `b`.`page`
		  FROM
		        `".$tabelle18."` `a`,
		        `".$tabelle2."` `b`
		  WHERE
		        `a`.`userid` = '".$User."'
		    AND `b`.`id` = `a`,`ignorid`
	";
	if( !$result = mysql_query($query) ) {
		echo '<p><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'<pre>'.$query.'</pre></p>';
		exit;
	}
	while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
		if( $row['userid'] != '' || $row['userid'] != 0 ) {
			$name = "Kein User in der Datenbank";
		} else {
			$name = $row['nickname'];
			$page = $row['page'];
			$id = $row['id'];
		}
	}
	[…]
?>
 
Also ich habs nun mal selbst gelöst.
@ Ludz ich mag so wie ich code. Wenn du nich durchsiehst is doch auch net so schlim haubtsache ich weiss worums geht ^^
nee also ich hab das so gemacht:
PHP:
$checkignor = mysql_query("SELECT * FROM $tabelle18 WHERE userid='".$User."'");
$ignoruserx = mysql_fetch_array($checkignor);
    if (mysql_num_rows($checkignor)==0) {
       echo "Kein User auf deiner Ignor list.";
    }
    
    else {

    $ignor = mysql_query("SELECT * FROM $tabelle2 WHERE id='".$ignoruserx['ignorid']."'");
    $ignoruser = mysql_fetch_array($ignor);
    
    $name = $ignoruser[nickname];
    $id = $ignoruser[id];
    
        echo "$id, $name";
    }
 
Zurück