Bei einer SELECT-Abfrage über 2 Tabellen erhalte ich nur Fehlermeldungen

julia29

Erfahrenes Mitglied
Hallo,
für eine Liste möchte ich Werte aus 2 Tabellen darstellen. In der Haupttabelle habe ich die Kunden-Nr und die Liefer-Zone. In der Nebentabelle nur die Zonen-Nr.

Ich erhalte jedoch immer folgende Fehler-Meldung:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/web110/html/t010/b1/38_list01.php on line 106

PHP:
<HTML> 
<HEAD>  
  <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
</HEAD> 
<BODY> 
<?PHP
error_reporting(E_ALL); 
// Definiert die Parameter für den Datenbank Connect
define("DB_HOST","localhost"); // MySQL hostname
define("DB_NAME","usr_web*****"); //MySQL db-name
define("DB_USER","web***"); //MySQL User
define("DB_PASS","********"); // MySQL Passwort
// Datenbank Connect herstellen
$db = @MYSQL_CONNECT(DB_HOST,DB_USER,DB_PASS) or die("Datenbank-Connect fehlgeschlagen");
$db_check = @MYSQL_SELECT_DB(DB_NAME) or die("Datenbank momentan nicht erreichbar");
$table1 = 'jos_users';
$table2 = 'a_liefer';
// Übernahme der Kunden-Nr
if (isset($_GET["axxf"])) {
    $kdnr = $_GET["axxf"];
}
// prüfen ob Kunden-Nr übernommen wurde
echo "Kunden-Nr..: $kdnr <br><br>";
//Abfrage auf welcher Seite man ist
$seite = $_GET["seite"];  
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
   {
   $seite = 1;
   }
//Einträge pro Seite: Hier 10 pro Seite
$eintraege_pro_seite = 10;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
$x1= ("<FONT SIZE=\"-1\" FACE=\"Arial\">");
$x2= ("<FONT SIZE=\"-2\" FACE=\"Arial\">");
    echo "
   <FONT SIZE=\"-1\" FACE=\"Arial\"><u></u><br>
   <FONT SIZE=\"-2\" FACE=\"Arial\"><FONT color=\"#000000\">
   <table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">
   <tr bgcolor=\"#cccccc\"><FONT SIZE=\"-1\" FACE=\"Arial\">
   <td width=35>$x2 </td><td width=160>$x2 Details</td><td width=300>$x2 </td> 
   </tr> ";
//Tabelle Abfragen

/*		//Abfrage 1
$abfrage = "SELECT * 
FROM $table2 
LIMIT $start, $eintraege_pro_seite";
*/

#/*		//Abfrage 2
$abfrage = "SELECT `jos_users`.*, `a_liefer`.* 
FROM `jos_users` 
LEFT JOIN `a_liefer` ON `jos_users`.`zone` = `a_liefer`.`lie_nr` 
WHERE `jos_users`.`id` = '{$kdnr}'
LIMIT $start, $eintraege_pro_seite"; 

$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))      // die Zeile 106
    {
		$id = $row->id4;		
    	$nr = $row->lie_nr;		
    	$name = $row->lie_name;	
    	$zusatz = $row->lie_zusatz;	
    	$strasse = $row->lie_strasse;
    	$plz = $row->lie_plz;	

//  ......
//  ......

Bei der Abfrage 1 läuft alles wunderbar, also sollte mein Gesamt-Seitenaufbau in Ordnung sein.
Bei der Abfrage 2 ist eigentlich nur noch die Verknüpfung zur User-Tabelle hinzugekommen und nun gibt es offensichtlich ein Problem.

Die Abfrage nach folgendem Beispiel

PHP:
SELECT `tabelle1`.*, `tabelle2`.*
FROM `tabelle1`
LEFT JOIN `tabelle2` ON `tabelle1`.`id` = `tabelle2`.`id`
WHERE `tabelle1`.`id` = '{$id}';

verwende ich des öfteren, hatte bisher da noch keine Probleme gehabt.

Leider kann ich den oben gennanten Fehler nicht erkennen.
Wer kann mir helfen?
 
Mach mal bitte die Fehlerausgabe vom Query an:
PHP:
$ergebnis = mysql_query($abfrage) or die(mysql_error());
 
Hallo Maniac,

genau das hat geholfen, die dann ausgegebene Fehlermeldung hat es angezeigt:

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='

habe jetzt die Nebentabelle von latin1_swedish_ci
auf utf8_general_ci geändert - nun klappt alles wie es soll.

Vielen Dank für den schnellen und erfolgreichen Tip
 
Zurück