SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.08.2002, 14:32:15
HS-78 HS-78 ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Brandenburg
Alter: 45
Beiträge: 68
SQL Select Problem

Also ich hab hier 2 Tabellen 'seite' und 'news'. In seite sind Informationen zu einzelnen Seiten gespeichert (wie könnte es auch anders sein :-) ) und News sind eigentlich auch nur Seiten die noch zusätzlich ein paar Extrafelder enthalten. Da jede News auf einer Seite basiert verweist sie mittels id_seite auch auf die id der entsprechenden Seite.

Nun bekomme ich bei einem Select auf die Tabelle 'seite' die Daten aller Seiten - das will ich aber nicht, sondern nur die Daten der Seiten die keine News sind.

Dazu hab ich hier folgendes, was aber leider falsch ist (weil halt nicht die gewünschte Datenmenge rauskommt)...

SELECT t1.id as id, t1.bezeichnung as bezeichnung, t1.id_template as id_template from seite as t1, news as t2 WHERE t1.id<>t2.id_seite ORDER by t1.bezeichnung

Meine Frage ist nun, wie ich die in 'news' verknüpften Seiten bei der Abfrage aus der Tabelle 'seite' unter den Tisch fallen lassen kann??
Mit Zitat antworten
  #2  
Alt 13.08.2002, 15:04:31
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
Poste mal dein Datenbanklayout mit beispielen und sag uns dann was du auslesen möchtest.

Wie sich das anhört suchst du glaub ich "JOIN"
Mit Zitat antworten
  #3  
Alt 13.08.2002, 16:57:12
HS-78 HS-78 ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Brandenburg
Alter: 45
Beiträge: 68
Okay, hier die beiden Tabellen mit jeweils ein paar Daten.

Code:
#
# Tabellenstruktur für Tabelle `cms_news`
#

CREATE TABLE cms_news (
  id smallint(5) unsigned NOT NULL auto_increment,
  id_seite smallint(5) unsigned NOT NULL default '0',
  archiv tinyint(3) unsigned NOT NULL default '0',
  last_change timestamp(14) NOT NULL,
  id_editor smallint(5) unsigned NOT NULL default '0',
  einstelldatum timestamp(14) NOT NULL,
  author varchar(255) NOT NULL default '',
  datum_herausgabe timestamp(14) NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM COMMENT='Newsverwaltung';

INSERT INTO cms_news (id, id_seite, archiv, last_change, id_editor, einstelldatum, author, datum_herausgabe) VALUES (1, 45, 0, 20020813144117, 3, 20020717111648, 'xxx', 20020820000000);
INSERT INTO cms_news (id, id_seite, archiv, last_change, id_editor, einstelldatum, author, datum_herausgabe) VALUES (4, 50, 1, 20020813081741, 3, 20020717133840, 'Holger Siegel', 20000429000000);
# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `cms_seite`
#

CREATE TABLE cms_seite (
  id smallint(5) unsigned NOT NULL auto_increment,
  bezeichnung varchar(128) NOT NULL default '',
  id_template smallint(5) unsigned NOT NULL default '0',
  last_change timestamp(14) NOT NULL,
  id_editor smallint(5) unsigned NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM COMMENT='Seitenverwaltung';

INSERT INTO cms_seite (id, bezeichnung, id_template, last_change, id_editor) VALUES (43, 'Über uns->Rechtliches', 35, 20020813123930, 0);
INSERT INTO cms_seite (id, bezeichnung, id_template, last_change, id_editor) VALUES (45, 'Neue Webseite online', 29, 20020813144117, 0);
INSERT INTO cms_seite (id, bezeichnung, id_template, last_change, id_editor) VALUES (52, 'Über uns->Startseite', 29, 20020813124150, 0);
INSERT INTO cms_seite (id, bezeichnung, id_template, last_change, id_editor) VALUES (48, 'Über uns->Aktuelle News Übersicht', 36, 20020813123826, 0);
INSERT INTO cms_seite (id, bezeichnung, id_template, last_change, id_editor) VALUES (49, 'Über uns->Archiv - News', 36, 20020813123542, 0);
INSERT INTO cms_seite (id, bezeichnung, id_template, last_change, id_editor) VALUES (50, ' überträgt PREMIERE WORLD', 29, 20020813144601, 0);
Für eine Übersicht brauche ich nun von allen Seiten die nicht als News verwendet werden die id und bezeichnung. Also von den Beispieldaten ausgehend die Seiten mit id: 43, 52, 48 und 49.
Mit Zitat antworten
  #4  
Alt 13.08.2002, 18:37:06
Ben20
Guest
 
Beiträge: n/a
Ich mache sowas immer über eine Schleife da mir das mit den verknüpften Abfragen zuoft einen Knoten in die Gedankengänge macht. Nachfolgend ein kleines Denkbeispiel


Also zuerst: SELECT id_seite FROM news

Dann

$i = 0;
while($array = mysql_fetch_irgendwas()) {

SELECT seitenid FROM seiten WHERE id = $id_seite;
$seitennummern[$i] = @mysql_result()

$i++;
}


Wie Du sicherlich gemerkt hast ist das ein Denkanstoß - kein echter Quelltext ;-)
Mit Zitat antworten
  #5  
Alt 14.08.2002, 07:37:10
HS-78 HS-78 ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Brandenburg
Alter: 45
Beiträge: 68
? Wenn ich das so richtig sehe würde ich mit Deiner Schleife aber nur die Seiten bekommen die auch News sind, und die will ich ja gerade nicht haben ... egal das könnte ich ja auch sicher umdrehen und dann paßt es NUR habe ich so ja etliche DB Abfragen anstatt einer!

Im Moment schwebt es mir so vor das ich 2 Abfragen mache, einmal alle Seiten und dann die News und beim anzeigen der Seiten schaue ob diese id auch in News enthalten ist und wenn ja dann erfolgt halt keine Anzeige. Wird zwar gehen ist aber nicht so schön als wenn das gleich in einer Select Anweisung drin wäre.
Mit Zitat antworten
  #6  
Alt 14.08.2002, 09:02:44
Ben20
Guest
 
Beiträge: n/a
Also wie gesagt ich benutz die "Schleifen"-Abfrage andauerend und bisher läuft alles noch recht flott.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:21:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt