php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2009, 00:01  
Benutzer
 
Registriert seit: 03.12.2008
Beiträge: 46
jason86 befindet sich auf einem aufstrebenden Ast
Standard Daten aus zwei Tabellen Abfragen

Hallo zusammen,

ich habe folgende Tabellen:

MOVIES:

- id
- videoID
- title
- description

TRANSLATE:

- videoID
- titlede
- descriptionde
- status

Ich würde gerne beide Tabellen gleichzeit abrufen
und dabei die beiden videoIDs verknüpfen also
als Schlüssel nutzen.

Noch sieht meine Abfrage folgendermaßen aus:

PHP-Code:
SELECT FROM moviestranslate ORDER by movies.videoID 
die Ausgabe so:

PHP-Code:
<table width="500" border="0" cellpadding="3" cellspacing="3">
  <tr bgcolor="#CCCCCC">

    <td><span class="style2">Title</span></td>
   <td><span class="style2">Video-ID</span></td>
    <td><span class="style2">Beschreibung</span></td>
   <td><span class="style2">Status</span></td>
      <td><span class="style2"></span></td>

  </tr>

<?php
include '../dbconnect.php';


require_once(
"pager_translate.php");


$p = new Pager;

/* Show many results per page? */
$limit 25;

/* Find the start depending on $_GET['page'] (declared if it's null) */
$start $p->findStart($limit);

/* Find the number of rows returned from a query; Note: Do NOT use a LIMIT clause in this query */
//$count = mysql_num_rows(mysql_query("SELECT * FROM movies, translate ORDER by videoID"));
$count mysql_num_rows(mysql_query("SELECT * FROM movies, translate ORDER by movies.videoID"));

/* Find the number of pages based on $count and $limit */
$pages $p->findPages($count$limit);

/* Now we use the LIMIT clause to grab a range of rows */
$result mysql_query("SELECT * FROM movies, translate ORDER by movies.videoID LIMIT ".$start.", ".$limit);
//$result2 = mysql_query("SELECT * FROM translate ORDER by videoID LIMIT ".$start.", ".$limit);

/* Now get the page list and echo it */
$pagelist $p->pageList($_GET['page'], $pages);


/* Or you can use a simple "Previous | Next" listing if you don't want the numeric page listing */
//$next_prev = $p->nextPrev($_GET['page'], $pages);
//echo $next_prev;

/* From here you can do whatever you want with the data from the $result link. */
    
while ($row mysql_fetch_object($result))
{
    
?>

  <tr bgcolor="#EAEAEA">

    <td class="tbl_list" valign="top"><?php echo $row->title?></td>
        <td class="tbl_list" valign="top"><?php echo $row->videoID?></td>
    <td class="tbl_list"><?php echo substr($row->description,0,100)."..."?></td>
    
     <td class="tbl_list" valign="middle"><?php

echo $row->status;

     
?>
     </td>
</table>
Ich habe für zwei Datensätze den Status "1" in der Datenbank
"translate" hinterlegt. Alle anderen Datensätze sind noch garnicht
in "translate" vorhanden, aber überall wird der Status "1" ausgegeben.

Kann mir da bitte jemand weiterhelfen ?

Liebe Grüße

Jason
jason86 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.01.2009, 00:06  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Falschen Button erwischt. [MAN][/MAN] erstellt einen Link zur Online-Doku von PHP.
[MAN]fopen[/MAN] -> fopen

Versuch es mal mit
Code:
SELECT
  *
FROM
  movies as m
LEFT JOIN
  translate as t
ON
  m.id=t.videoID
ORDER BY
  movies.videoID
David ist offline   Mit Zitat antworten
Alt 13.01.2009, 00:18  
Benutzer
 
Registriert seit: 03.12.2008
Beiträge: 46
jason86 befindet sich auf einem aufstrebenden Ast
Standard

Das funktioniert leider nicht.

Müsste das nicht wie folgt aussehen ?

PHP-Code:
SELECT FROM movies as m LEFT JOIN 
translate 
as t ON m.videoID=t.videoID 
Denn videoID soll ja der Schlüssel sein.

Ich habe das mal versucht, der Status wird
jetzt korrekt ausgegeben.

Aber die videoID wird jetzt nur noch bei den
Einträgen angezeigt wo auch ein Eintrag in
Translate vorhanden ist, sprich bei zwei Einträgen.
jason86 ist offline   Mit Zitat antworten
Alt 13.01.2009, 00:33  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Oh, das Feld heißt in beiden Tabellen videoId?
Was ist denn dann das Feld movies.id?
David ist offline   Mit Zitat antworten
Alt 13.01.2009, 00:41  
Benutzer
 
Registriert seit: 03.12.2008
Beiträge: 46
jason86 befindet sich auf einem aufstrebenden Ast
Standard

movies.ID ist der Primärschlüssel von der Tabelle: movies,
aber diese ID benötige ich für etwas anderes...

Das vergleichen mit beide videoIDs hat ja jetzt gut geklappt.
Nur es besteht noch das oben beschriebene Problem, das
die videoID nur ausgegeben bzw. angezeigt wird wenn ein
Eintrag in "translate" vorhanden ist.

Danke das du mir hilfst.
jason86 ist offline   Mit Zitat antworten
Alt 13.01.2009, 00:56  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Na dann zählen wir doch einfach mal alle Felder in der Abfrage auf und geben translate.videoId einen neuen Namen
Code:
SELECT
  m.id,
  m.videoID,
  m.title,
  m.description,
  t.videoID as tlVideoId,
  t.titlede,
  t.descriptionde,
  t.status
FROM
  movies as m
LEFT JOIN
  translate as t
ON
  m.videoID = t.videoId
ORDER BY
   m.videoID
Wenn es keinen passenden Eintrag zu m.videoId in translate gibt, sind die Felder tlVideoId, titlede, descriptionde und status NULL.
David ist offline   Mit Zitat antworten
Alt 13.01.2009, 01:05  
Benutzer
 
Registriert seit: 03.12.2008
Beiträge: 46
jason86 befindet sich auf einem aufstrebenden Ast
Standard

Perfekt !!! So habe ich mir das vorgestellt.

Vielen lieben Dank !
jason86 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfragen aus 2 Tabellen Kombinieren azrax Datenbanken 20 15.12.2008 00:35
Daten abfragen und wenn vorhanden Dateinamen ändern ikkunaprincessa Datenbanken 2 10.12.2008 11:36
Mehrere gleich Abfragen bei verschiedenen Tabellen cyberholic Datenbanken 3 08.01.2007 17:59
neuste daten aus 2 tabellen Freeaak Datenbanken 10 22.05.2006 00:27
Daten aus MySQL Datenbank abfragen trivial Datenbanken 2 29.04.2006 17:48
2 Tabellen auf 2 Servern, Daten nur 1x selektieren Sonja PHP Tipps 2006 2 23.04.2006 16:55
Abfrage von Daten aus zwei Tabellen Merlin76 PHP Tipps 2006 1 08.04.2006 10:57
daten von bildern auf einem anderen server abfragen netti PHP Tipps 2005-2 3 05.08.2005 14:27
Daten aus 10 Tabellen sortiert ausgeben Sirke Datenbanken 3 02.08.2005 11:50
Werte aus 2 Tabellen abfragen? nsane Datenbanken 10 16.07.2005 12:47
Verknüpfte Tabellen abfragen msdose Datenbanken 3 30.03.2005 10:43
2 Tabellen abfragen und dann variable unterschiedlich setzen Anuschka PHP Tipps 2004-2 2 22.12.2004 02:46
Daten Sortieren aus meherern mySQL tabellen PHP Tipps 2004-2 1 12.12.2004 18:22
abfragen zwischen 2 Tabellen! Boennchen Datenbanken 1 02.08.2004 14:50
2 Tabellen abfragen Datenbanken 7 01.08.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
daten aus zwei tabellen, zwei tabellen abfragen, werte aus 2 tabellen abfragen, daten aus 2 tabellen abfragen, daten aus zwei tabellen abfragen, php zwei tabellen abfragen, daten von 2 tabellen abfragen, abfrage datensätze mehrere tabellen code, abfrage zwischen zwei tabellen, daten zu einem benutzer aus zwei tabellen abfragen mysql, daten aus zwei tabellenblätter, php mehrere tabellen rows selektieren und bearbeiten, php $->row mit tabellenname, beide abfrage php, php abfrage datenbank zwei tabellen, zwei tabellen eine abfrage, php daten aus zwei tabellen, ausgabe von daten aus mehreren tabellen mit php, datenbank php online stellen button where did status=\'1\', datenbank php online stellen button where did_status=\'1\'

Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum