Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Ein kleines aber für mich großes Problem

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 20:50

Hallo,
ich habe ein kleines Problem und komme einfach nicht ans Ziel.

Ich habe ein Script - einen Content Generator plus Eintragshilfe.
Dort sind in einer Datenbank Tabelle – domaindaten die Domaindaten gespeichert. Zusätzlich kann ich von Domain zu Domain umschalten/wechseln. Dazu befindet sich ein Feld - aktiv in dieser Datenbank-Tabelle. Es ist immer die Domain aktiv wo im Feld aktiv eine 1 steht.

Nun habe ich eine weitere Tabelle, wo die Kataloge drin gespeichert sind. Wenn ich mich irgendwo eintrage - kann ich diesen Vorgang abspeichern. (auch hier noch ein Feld aktiv = 1 / wenn eine 1 drin steht wurde schon eingetragen). Nach dem Abspeichern ist der Link in der Liste nicht mehr aufrufbar.

Wenn ich jetzt zu einer anderen Domain umschalte, dann zeigt er mir natürlich die gespeicherten Einträge auch dort an, obwohl ich diese Domain noch nirgendwo eingetragen habe.

Wie schaffe ich es, dass ich die getätigten Einträge für jede Domain separat abspeichern kann? Na hoffentlich versteht das auch jemand, gg

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

BKEAIM
PostRank 3
PostRank 3
Beiträge: 82
Registriert: 08.01.2009, 21:02

Beitrag von BKEAIM » 06.06.2009, 21:05

Du könntest den Einträgen in den ersten beiden Tabellen jeweils ID-Nummern (oder andere Schlüssel) zuordnen, und in einer dritten Tabelle die Schlüsselkombinationen aus Domain- und Katalog-Tabelle speichern, sobald Du eine Domain in einen Katalog einträgst.

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 21:08

Hmmm, also die Tabelle für die Katalogliste verfügt schon über Ids. Jeder Katalog hat eine ID. Und nun soll ich eine weitere Tabelle anlegen? Wie genau sollte die aufgebaut sein und wie vergleiche ich das dann mit der Tabelle wo die Kataloge drin stehen?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


BKEAIM
PostRank 3
PostRank 3
Beiträge: 82
Registriert: 08.01.2009, 21:02

Beitrag von BKEAIM » 06.06.2009, 21:15

Diese Tabelle bräuchte nur zwei Spalten, welche die Schlüssel aus den beiden anderen Tabellen als Fremdschlüssel referenzierten.

Das würde dann auch diese 1=aktiv-Geschichte erübrigen.

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 21:19

2 Spalten für beispielsweise 5 Domains? Verstehe ich jetzt irgendwie nicht. Und in den 2 Spalten kann ich dann die Einträge für Domain 1,2,3,4, und 5 speichern? :roll:

Und wie rufe ich die Katalogliste dann auf? Die schaut ja für jede Domain anders aus.

Gibt es für sowas irgendwo Beispiele?

Sorry, aber ich blicke das nicht - sehe nur noch Zeichen vor mir, gg

BKEAIM
PostRank 3
PostRank 3
Beiträge: 82
Registriert: 08.01.2009, 21:02

Beitrag von BKEAIM » 06.06.2009, 21:30

OK, ein einfaches Beispiel sähe so aus:

Domain-Tabelle:

Code: Alles auswählen

DomainID | URL              | ...
==========================================

1        | www. example.com | ...
2        | www. example.net | ...
3        | www. example.org | ...
...
Katalog-Tabelle:

Code: Alles auswählen

KatalogID | URL              | ...
==========================================


1         | www. catalog.com | ...
2         | www. catalog.net | ...
3         | www. catalog.org | ...
...
Jetzt trägst Du example.com in catalog.com und catalog.org, example.net in catalog.net und catalog.org und example.org in catalog.com und catalog.net ein.

Domain-Katalog-Tabelle:

Code: Alles auswählen

DomainID | KatalogID 
=======================
1        | 1 
1        | 3
2        | 2
2        | 3
3        | 1
3        | 2

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 21:36

Ach so, nun habe ich das verstanden. Danke für deine Hilfe.

Werd ich dann mal ausproieren.

Nur eines noch - wie rufe ich jetzt die Katalogliste für jede Domain auf?

Bis jetzt mache ich das für 1 Domain so - wie muss es nach dieser Änderung aussehen?

Code: Alles auswählen

// ist noch eine Blätterfunktion drin
$abfrage = "SELECT * FROM kataloge order by titel ASC LIMIT ".($perpage*($page-1)).",".($perpage);
$ergebnis = mysql_query($abfrage);
   
while($row = mysql_fetch_object($ergebnis)) {

if($row->aktiv == "1")
    {
   echo"Zeigt nur den Titel<br />";
 &#125;
  else
    &#123;
   echo"Zeigt die URL<br />";
&#125;
&#125;

BKEAIM
PostRank 3
PostRank 3
Beiträge: 82
Registriert: 08.01.2009, 21:02

Beitrag von BKEAIM » 06.06.2009, 22:00

Mit einer Abfrage in der Art von:

Code: Alles auswählen

SELECT * 
FROM domain AS d
   JOIN domainkatalog AS dk ON d.domainID = dk.domainID
   RIGHT JOIN katalog AS k ON dk.katalogID = k.katalogID
WHERE d.domainID = xyz
Die ID der anzuzeigenden Domain wäre hier xyz. Die Kataloge, in welche die Domain bislang noch nicht eingetragen wurde, hätten im Ergebnis dieser Anfrage NULL-Werte in den Spalten der Domain-Tabelle.

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 22:05

Okay, das mit dem Speichern klappt schon mal - jetzt versuche ich die Abfrage.

Vielen Dank erstmal - hast mir sehr geholfen!

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 22:18

Habe jetzt -

Code: Alles auswählen


$abfrage = "SELECT * FROM domaindaten AS d JOIN kataloge AS dk ON d.domainid  = dk.domainid 
RIGHT JOIN kataloge AS k ON dk.katalogid = k.katalogid 
WHERE d.domainid = 4 order by titel ASC LIMIT ".&#40;$perpage*&#40;$page-1&#41;&#41;.",".&#40;$perpage&#41;;

$ergebnis = mysql_query&#40;$abfrage&#41;;

Nun kommt - Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/......

Was ist da nun falsch?

BKEAIM
PostRank 3
PostRank 3
Beiträge: 82
Registriert: 08.01.2009, 21:02

Beitrag von BKEAIM » 06.06.2009, 22:21

Wenn Du nach den Titeln der Kataloge sortieren möchtest, k.titel verwenden.

Außerdem joinst Du zwei Mal kataloge. Beim ersten Mal müsstest Du die Domain-Katalog-Tabelle verwenden.

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 22:24

Geht nicht, die Fehlermeldung bleibt.

Code: Alles auswählen

$abfrage = "SELECT * FROM domain AS d JOIN domaindaten AS dk ON d.domainid  = dk.domainid 
RIGHT JOIN kataloge AS k ON dk.katalogid = k.katalogid 
WHERE d.domainid = 4";

BKEAIM
PostRank 3
PostRank 3
Beiträge: 82
Registriert: 08.01.2009, 21:02

Beitrag von BKEAIM » 06.06.2009, 23:16

Versuch' mal folgendes als Ausgangspunkt, weitere Spalten nach Bedarf ergänzen:

Code: Alles auswählen

$abfrage = "SELECT  k.katalogid, d.domainid  
FROM domaindaten dk 
   RIGHT JOIN kataloge k ON k.katalogid = dk.katalogid 
   LEFT JOIN domain d ON d.domainid = dk.domainid AND d.domainid = 4 
GROUP BY k.katalogid";

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 06.06.2009, 23:26

Ich glaube so kann es auch nicht gehen, weil die Tabellen so aufgebaut sind.

Tabelle domaindaten (dort steht die ausgewählte Domain drin)
Ausgewählt ist die Domain id per aktiv=1

Tabelle kataloge (hier stehen alle Kataloge drin)
id
titel
url

Tabelle domain (hier werden die Einträge gespeichert, so wie von dir vorgeschlagen).

domainid katalogid
4 173
4 97
4 202
4 205

Somit kann die Abfrage gar nicht funktionieren, Sorry aber das habe ich jetzt übersehen!

Die Tabelle domaindaten muss in der Abfrage nicht berücksichtigt werden.

Michael1967
PostRank 9
PostRank 9
Beiträge: 2158
Registriert: 26.10.2005, 23:51

Beitrag von Michael1967 » 07.06.2009, 00:34

Die Fehlermeldung ist nun weg, aber nun listet er mir nur die 4 Kataloge aus der Tabelle wo die einträge gespeichert werden.

Code: Alles auswählen

$abfrage = "SELECT * FROM domaindaten AS d JOIN domain AS dk ON d.domainid  = dk.domainid 
RIGHT JOIN kataloge AS k ON dk.katalogid = k.katalogid 
WHERE d.domainid = 4";

Hatte die Spalten überall umbenannt in domainid und katalogid. Müsste die Abfrage nicht mit SELECT * FROM kataloge beginnen, weil sonst komme ich doch nicht an den Inhalt der Katalogliste.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag