Abfrage von mehreren Tabellen

fredolin

Erfahrenes Mitglied
Hallo Leute,

ich weiß nicht was ich bei dieser DB Abfrage falsch machen. Ich frage aus zwei verschiedenen Tabellen einige Inhalte ab.

Hier mein Code zu DB Connect was funktioniert:

PHP:
define ("DBBILD", "bildcontent"); /*Datenbanktabelle */
define ("DBIMPRESS", "impress"); /*Datenbanktabelle */
define ("DBPRO", "projekte"); /*Datenbanktabelle */


define ("DBNAME","xxxx"); /*Datenbankname */	
define ("DBSERVER","localhost"); /*Datenbankserver */
define ("DBUSER", "yxyxyx"); /* User mit Zugriffrecht */
define ("DBPASSWD", "awqaqwaw"); /* Userpasswd für DB Zugriff */

// Datenbank öffnen
function opendb()
{
  $dbhandle=mysql_connect(DBSERVER,DBUSER,DBPASSWD);
  if(!$dbhandle)
    {
      echo "Could not connect to database(1)<br /><br />";
      return (-1);
    }

  $result=mysql_select_db(DBNAME, $dbhandle);
  if(!$result)
    {
      echo "Could not connect to database(2)<br /><br />";
      return(-1);
    }
  return ($dbhandle);
}


//Datenbank schließen
function closedb($dbhandle)
{
  mysql_close($dbhandle);
}

Hier nun die Abfrage selbst

PHP:
$myresult = mysql_query("SELECT 
								".DBBILD.".ID,
								".DBBILD.".bild_kategorie,
								".DBBILD.".bild_name,
								".DBBILD.".bildendung,
								".DBBILD.".projekt,
								".DBBILD.".th_url,
								".DBBILD.".big_url,
								".DBBILD."._show
								".DBPRO.".proID,
								".DBPRO.".prokategorie,
								".DBPRO.".proname,
								".DBPRO.".proheadline,
								".DBPRO.".prourl,
								".DBPRO.".prostatus,
								".DBPRO."._show FROM " . DBBILD, DBPRO . " WHERE bildcontent.ID = projekte.proID AND bildcontent._show = 'y' AND projekte._show = 'y'") or die("MySQL-ERROR-Typing => "  . mysql_error());
								
	
while($row = mysql_fetch_array($myresult, MYSQL_ASSOC)) {
// hier wird dann die Verabeitung der Daten stattfinden //
}

Meine Fehlermeldeung die ich erhalte ist diese:
PHP:
Warning: mysql_query() expects parameter 2 to be resource, string given in J:\xxx\xxxx //<- Ort wo der Fehler auftritt

Aber ich habe gegooglet, mir vviele Beispiele angeschaut und so aber ich sehe (finde) nicht den Fehler. Oder sehe ich den Wald vor lauter Bäumen nicht..

Freue mich auf etwas Hilfe..

Gruß Fredolin
 
Zuletzt bearbeitet:
Da kommst du nicht ums debuggen herum
PHP MySQL Debug Queries

Achja, mysql_* ist veraltet. Stell dein Code auf mysqli oder PDO um.

PS: Warum hast du im WHERE-Teil die Tabellennamen wieder Hardcodiert drin?
An deiner Stelle würde ich mit Tabellenalias arebiten, dann musst du den Tabellennamen von aussen nur einmal mitgeben.
 
Hi Yaslaw,

erstmal Danke für deine schnelle Antwort und super Hinweis mit den Hardcodierten.. Hab das mal umgebaut. Aber was meinst du mit den "Tabellenalias"?

Das "error_reporting" habe ich in meiner ausführseite drinne. Da wird auch keine Fehler darüber angezeigt.
 
Zuletzt bearbeitet:
Sowas:
SQL:
SELECT
    t1.id,
   t2.name
FROM
    tabelle1 AS t1,
    tabelle2 AS t2
WHERE
    t1.id = t2.tid
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
ah so hast du das gemeint. Danke für deinen Ansatz. Doch ich habe das Problem gefunden.

Das Problem lag hier

Alter Coder (ausschnitt)
PHP:
...  FROM " . DBBILD , DBPRO . " WHERE.....

Neuer Code (bereinigt)
PHP:
 FROM " . DBBILD .",". DBPRO . " WHERE

Zu mindestens kommen nun keine Fehlermeldungen mehr.

Gruß Fredolin
 
Neues Problem

Das ich nun die Daten aus die beiden Tabelkle bekomme funktioniert. Nun hab ich eine technische Frage. In der einen Tabelle sind nur 6 Datensätze enthalten und in der anderen etwas mehr wie 50 Datensätzen. Aber nun werden mir nur die ersten 6 Datensätze angezeigt. Wie kann ich aber alle Datensätze mir anzeigen lassen?

GRuß Fredolin
 

Neue Beiträge

Zurück