php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.04.2005, 11:16  
Gast
 
Beiträge: n/a
Standard [Erledigt] logische verknüpfungen - webshop

Hi,
wie der Titel des Threads schon sagt geht es um logische Verknüpfungen, um genau zu sein dabei einer Kategoriestruktur beliebig viele Unterkategorien zuzuweisen.

Es muss ein gedanklicher Knick im SELECTs des SQL Querys vorhanden, muss aber sagen, das ich ihn nicht sehe. Aus dem Grund bitte ich um Hilfe, ob jemand vielleicht mir behilflich sein kann das Problem zu lösen.

Die Datenbank Struktur sieht folgendermaßen aus:

Code:
Datenbank: webshop

Tabelle: categories
	--> Spalte: category_id   | int(10)
	--> Spalte: category_name | varchar(200)

Tabelle: subcategories
	--> Spalte: subcategory_id   | int(10)
	--> Spalte: subcategory_name | varchar(200)

Tabelle: category_binds
	--> Spalte: parent_id   | int(10)
	--> Spalte: category_id | int(10)

Tabelle: products
	--> Spalte: product_id   | int(10)
	--> Spalte: product_name | varchar(200)

Tabelle: product_binds
	--> Spalte: product_id   | int(10)
	--> Spalte: category_id  | varchar(200)


Download des Dumps: http://wwwpreview.sky-projects.de/webshop.sql

Von der Logik her soll die Verzeichnisstruktur so funktionieren das ein Produkt in mehreren Kategorien stehen darf, aber dafür nicht immer eine Kopie des Products angelegt werden muss. Um dies zu ermöglichen Wird die ID des Produktes an die jeweilie Kategorie gebunden unter 'product_binds'

Meine while()-Verschachtelung sieht folgendermaßen aus:

PHP-Code:
<?php
error_reporting
(E_ALL);

mysql_connect("localhost""root""");
mysql_select_db("webshop");

$strSQLSelectCategories "SELECT category_id, category_name FROM categories ORDER BY category_name";
$strSQLQueryCategories mysql_query($strSQLSelectCategories);

while(
$result_categories mysql_fetch_array($strSQLQueryCategories))
{
    global 
$result_categories;
    echo 
"<a href=\"" $_SERVER['PHP_SELF'] . "?c=" $result_categories['category_id'] . "\" target=\"_top\">" $result_categories['category_name'] . "</a>";
    echo 
"
"
;
    
    
$strSQLSelectSubcategories "SELECT category_binds.parent_id, category_binds.category_id, subcategories.subcategory_id, subcategories.subcategory_name FROM categories, subcategories, category_binds WHERE categories.category_id=category_binds.parent_id AND subcategories.subcategory_id=category_binds OR categories.category_id=category_binds.parent_id";
    
$strSQLQuerySubcategories mysql_query($strSQLSelectSubcategories);

    while(
$result_subcategories mysql_fetch_array($strSQLQuerySubcategories))
    {
        echo 
"<a href=\"" $_SERVER['PHP_SELF'] . "?c=" $result_categories['category_id'] . "&sc=" $result_subcategories['subcategory_id'] . "\" target=\"_top\">" $result_subcategories['subcategory_name'] . "</a>";
        echo 
"
"
;
    }
}

mysql_close();
?>
Von der Schreibweise des Codes ist erst mal abzusehen. Ist erstmal nur zur Entwicklung so.

Bis jetzt werden nur die Hauptkategorien ausgegeben die unter 'categories' stehen, allerdings die subcategories nicht die über 'subcategory_binds' an die übergeordnete Kategorie gebunden sind.

Danke schonmal für eure Hilfe!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.04.2005, 11:57  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

meinst du nicht, daß du auch mit einer query auskommst? dort, wo ich herkomme, sind queries in schleifen verpönt.

code-formatieren bringt manchmal auch vorteile.
__________________
derHund ist offline   Mit Zitat antworten
Alt 30.04.2005, 12:05  
Gast
 
Beiträge: n/a
Standard

Genau chr1z, mach es lieber mit einer, denn SQL-Querys sind, wie derHund schon sagt, verpöhnt. Nutze lieber INNER JOIN oder LEFT JOIN, je nachdem was du brauchst.

Weitere Infos dazu findest du auffer mysql.com Seite in den Docs
  Mit Zitat antworten
Alt 30.04.2005, 17:59  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Sunman
SQL-Querys sind, wie derHund schon sagt, verpöhnt.
sagte er nicht. er sagte verpönt.

der rechtschreibfanatiker.
axo ist offline   Mit Zitat antworten
Alt 30.04.2005, 20:54  
Gast
 
Beiträge: n/a
Standard

Du solltest überprüfen ob die querys fehlschlagen und wenn ja auch den fehler dazu ausgeben.

z.B.
Code:
$strSQLQuerySubcategories = mysql_query($strSQLSelectSubcategories) or print(mysql_error()); // oder auch die statt echo...
Der wird dir dann auch sagen, dass du bei "subcategories.subcategory_id=category_binds" etwas vergessen hat
  Mit Zitat antworten
Alt 02.05.2005, 16:42  
Gast
 
Beiträge: n/a
Standard

Darf ich mal dazwischen Funken: Weshalb zum Geier soll man keine Querys in Schleifen aufrufen? Es gibt fälle da ist das Handling auf diese Art viel einfacher als mit dem ganzen Join-Kram. Habs auch schon probiert, komme mit der Schleifensache besser zurecht (übersichtlicher!). An der Performance spüre ich rein gar keine Unterschiede. Also wassup?
  Mit Zitat antworten
Alt 02.05.2005, 16:47  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Zitat von diybeamer
Darf ich mal dazwischen Funken: Weshalb zum Geier soll man keine Querys in Schleifen aufrufen? Es gibt fälle da ist das Handling auf diese Art viel einfacher als mit dem ganzen Join-Kram. Habs auch schon probiert, komme mit der Schleifensache besser zurecht (übersichtlicher!). An der Performance spüre ich rein gar keine Unterschiede. Also wassup?

spüre ich rein gar keine Unterschiede


omg wenn ich so kommentare höre :P
da fragt man sich doch ...

naja
die sache ist nicht was du siehst, sondern was der DB-Server davon hält, spätestens wenn du mal was großes schreibst und deinen eigenen server hast und merkst dass nichts mehr geht, weil du zu faul warst zu denken, sondern lieber schnell schleife und gut gemacht hast. und dann macht es spass das alles im nachhinein umzuschreiben.

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 02.05.2005, 16:50  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@diybeamer
http://www.phpfriend.de/forum/viewto...=257032#257032

nach deinem 'geilen' thread im html-bereich hast du allerdings bereits mehr als deutlich gezeigt, dass tiefergehende diskussionen bei deinem kenntnisstand nicht besonders viel sinn machen. weitere erklärungen kannst du dir gerne mithilfe von STFW oder aus datenbank-büchern holen.
axo ist offline   Mit Zitat antworten
Alt 02.05.2005, 23:59  
Gast
 
Beiträge: n/a
Standard

Hey axo, das man immer von einigen Leuten dämlich angemacht werden muss ist echt zum Mäuse melken. Hast du das nötig oder geht dir dabei jedes mal einer ab?... tzzz
  Mit Zitat antworten
Alt 03.05.2005, 00:12  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von diybeamer
Hey axo, das man immer von einigen Leuten dämlich angemacht werden muss ist echt zum Mäuse melken.
dämliche fragen - dämliche antworten. einfaches, bewährtes system.

Zitat:
Zitat von diybeamer
Hast du das nötig oder geht dir dabei jedes mal einer ab?...
ja, beides. das solltest du als 'do-it-yourself-beamer' aber wissen.
axo 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
OOP MVC GPL Webshop Software solarwasser Scriptbörse 7 12.02.2010 03:08
Probleme mit Webshop schaererm PHP Tipps 2008 1 19.05.2008 12:33
Suche noch Leute für ein Webshop Projekt "xtCart" DonTermi Beitragsarchiv 24 17.02.2008 19:49
Tabelle Webshop TailerD Datenbanken 11 14.06.2006 23:44
Mac webshop tool PHP Tipps 2005-2 2 27.09.2005 16:00
[Solved] logische operatoren in if statement? PHP Tipps 2005-2 10 04.08.2005 13:13
WebShop PHP Tipps 2005-2 4 27.06.2005 15:04
Webshop Dragon26mFR Beitragsarchiv 6 19.06.2005 20:54
Problem mit dem WebShop PHP Tipps 2005 13 03.04.2005 16:45
Webshop Beitragsarchiv 6 20.10.2004 14:00
logische erklärung für problem PHP Tipps 2004 3 06.10.2004 12:45
Formular für Webshop PHP Tipps 2004 1 29.06.2004 23:48
Webshop PHP Tipps 2004 2 23.06.2004 14:43
Webshop PHP-Fortgeschrittene 1 23.06.2004 13:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
logische verknüpfungen, logische verknüpfungen php, logische verknüpfungen tabelle, einfacher webshop php, skyprojects.de, php logische verknüpfung, php logische verschachtelungen, mysql logisch verknüpfung einfaches und, logische verknüpfungen im sql, logische verknüpfungen in der it und oder, sql verknüpfungen webshop, logische verküpfungen datenbanken, webshop datenbank aufbau, tabellen webshop, webshop datenbank sturktur?

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:33 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.