ein Feld in 2 Tabellen vergleichen

julia29

Erfahrenes Mitglied
Hi,

möchte gerne die Felder "id" von 2 Tabellen vergleichen. Dazu habe ich folgendes aufgebaut:

PHP:
<?php
error_reporting(E_ALL);
//Verbindung mit der Datenbank aufbauen
$Link=mysql_connect("localhost","webxxx","xxx") or die (mysql_error());
mysql_select_db("usr_webxxx_1");
$table1 = "a";
$table2 = "b";


// Tabelle 1
$sql = mysql_query("SELECT * FROM ´a´"); 
$row = mysql_fetch_object($sql); 
$id_1 = $row->id_1; 	//isbn
$artikel = $row->artikel;

// Tabelle 2
$sql = mysql_query("SELECT * FROM ´b´ WHERE id2 = $id_1"); 
if(mysql_num_rows($sql) > 0) {
$row = mysql_fetch_object($sql); 

echo "Der Datensatz ist bereits vorhanden<br>Artikel: ".$artikel;
} else {
echo "<FONT SIZE=\"-1\" FACE=\"Arial\"><br>Der Datensatz ist noch nicht vorhanden";
}

?>
Jedoch erscheint anschließend die nachfolgende Warnung:
Code:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/webxx/html/php/vergleich.php on line 16

Notice: Trying to get property of non-object in /var/www/webxx/html/php/vergleich.php on line 17

Notice: Trying to get property of non-object in /var/www/webxx/html/php/vergleich.php on line 18

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/webxx/html/php/vergleich.php on line 22

Der Datensatz ist noch nicht vorhanden

Die Felder sind definitiv vorhanden und mindestens einen doppelten Datensatz gibt es auch. Was müßte ich ändern?

Gruß
Julia
 
Hi Julia,

Deine Abfragen schlagen fehl, also solltest Du Dir mysql_error() ausgeben lassen. Mein Tipp: Tabellennamen gehören in Backticks.
Und Du möchtest Dich gerne mal mit JOINs beschäftigen. ;)

LG
 
Hi kuddeldaddeldu,

danke für deine Denkanstöße

Dir mysql_error() ausgeben lassen.

hatte ich doch dort stehen
PHP:
or die (mysql_error());

Ja stimmt, Backticks hatte ich übersehen, ist jetzt so:
PHP:
$sql = mysql_query("SELECT * FROM ´a´, ´b´ 
WHERE ´b´.´id2´ = ´a´.´id´");

Fehler bleibt noch
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/webxx/html/php/vergleich.php on line 20

Der Datensatz ist noch nicht vorhanden

Was kann ich noch machen?
 
PHP:
$Link=mysql_connect("localhost","webxxx","xxx") or die (mysql_error());
mysql_select_db("usr_webxxx_1");

ändern in:

PHP:
$Link=mysql_connect("localhost","webxxx","xxx") or die (mysql_error());
mysql_select_db("usr_webxxx_1", $Link);
 
Zurück