MySQL Ausgabe zwei Tabellen

Brian Folte

Angesehenes Mitglied
Hallo, seit ein paar Stunden kämpfe ich nun schon damit rum das das eingegebene Suchwort in zwei Tabellen gesucht wird jedoch bekomme ich dies nicht hin.

Hat jemand zufällig eine Hilfreiche Seite zu Hand?

Und zwar sind hier zwei Datenbankabfragen einmal:
CODE $db = mysql_connect ($mysqlserver,$mysqluser,$mysqlpasswort); mysql_select_db ($mysqldbname,$db);
$abfrag = ("SELECT * FROM kategorien");
$ergebniskat = mysql_db_query($mysqldbname,$abfrag,$db);
while (list($id,$kat[],$unterkat[]) = mysql_fetch_row($ergebniskat))

dazu sollte nun noch die Tabelle bilder, jedoch hat sie ein andere Spaltennamen als der von Kategorien.


CODE $abfragen = "SELECT * FROM $kat[$i] where titel like '%$finde%' or inhalt like '%$finde%' limit $zahl";
$Ergebnis = mysql_db_query($mysqldbname,$abfragen);
while (list($id,$artnum,$kategorie,$unterkat,$kostenlos,$al$pass,$tit,$bild,$inhalt,$ema,$zust,$wunschpreis,$startdatum,$startuhr,$stueck,$biet,$gebot,$endzeit,$sofortkauf,$sofort,$klick,$zahlungsart,$versandart,$ipnr,$versandkosten,$steig,$fett,$logo,$zus,$leis,$leist) = mysql_fetch_row($Ergebnis))
{

Dieser hat jedoch den selben Spaltennamen wie Bilder.


Ich wäre über einen Link schon durchaus zufrieden in dem dies ausführlich erklärt wird.

LG Brian


 
wie sind denn deine Tabellen aufgebaut? GIbt es evtl. einen Schlüssel, der in beiden Tabellen gleich ist? Dann kannst du nämlich die Tabellen verschmelzen (=> Joins) damit brauchst du dann auch keine 2 Abfragen.... normalerweise sollte das gehen... kommt halt drauf an, wie deine tabellen aussehen.
smile.gif
 
Hallo chrizz.

Ja die beiden Tabellen sind identisch. nur leider habe ich keine Ahnung wie ich die Joins verwenden soll.
Werde google darüber ausquetschen über Tipps wäre ich trotztdem sehr Dankbar.

LG Brian
 
Ich habe mich an Join rangetestet und bin zu folgendem Ergebnis gekommen:
CODE $get_artikelid = "SELECT k.count(id),a.count(id) FROM $kat[$i] As k INNER JOIN annoncen As a where k.titel = a.titel like '%$finde%'";
$artikelid_result = mysql_query($get_artikelid);
$return= mysql_result($artikelid_result, "count(id)"); ZEILE 118
$send_artikelid = "";
$send_artikelid = rawurlencode($return);


In Zeile 118 wird mir folgender Fehler ausgegeben:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/web14/html/search/suchen.php on line 118


CODE $abfragen = "SELECT k.*, a.* FROM $kat[$i] As k INNER JOIN annoncen As a where k.titel = a.titel like '%$finde%' limit $zahl";
$Ergebnis = mysql_db_query($mysqldbname,$abfragen);
while (list($id,$artnum,$kat,$unter,$kost,$alias,$pass,$titel,$bild,$inhalt,$email,$zustand,$wunschpreis,$start,$star,$stue,$bie,$ge,$end,$sofortkauf,$sofortpreis,$klick,$zahlungsart,$versandart,$ipnr,$versandkosten,$steig,$fett,$logobild,$zusatz,$leistunga,$leistungb) = mysql_fetch_row($Ergebnis))
{

Diese Abfrage gibt zwar den Inhalt der Tabelle wieder jedoch nicht das was ich suche. Sie wirft einfach alles raus was in der Tabelle steht.

LG Brian
 
QUOTE (Brian Folte @ Mi 16.04.2008, 09:51)Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/web14/html/search/suchen.php on line 118

Deine SQL-Abfrage enthält keinerlei Fehlerprüfung. Der Query schlägt fehl, das Script läuft aber weiter und scheitert daran, dass $Ergebnis den Boolschen Wert false enthält.

Leider verstehe ich aus deinen Codeschnipseln nicht wirklich, wie die beiden Tabellen aufgebaut sind. Am besten Du folgst
chrizzs Rat und zeigst uns den Aufbau der Tabellen oder erklärst zumindest was Du in den Tabellen speichern willst. Tipp: SHOW CREATE TABLE
 
ich würde dir raten, den mysql Befehl, so wie er bei dir in der Query ausgeführt wird, mal manuell bei phpmyadmin oder HeidiSQL reinzuhacken und auszuführen. Dort ist die Fehlermeldung immernoch ein bisschen genauer. Ausserdem muss nicht immer das ganze Script laufen, damit du das testen kannst. Ein weiter VorteiL: Du siehst wie die Ergebnisstabelle aufgebaut ist und kannst sie einfacher überprüfen....

viel erfolg
 
Zurück
Oben