MySQL, PHP, Abfragen, Richtig speichern

hallo zusammen!

ich mache mir gerade gedanken welche methoden richtig sind bzw welche arbeitsweise am besten wäre.

händisch eingegeben formulardaten werden in mysql gespeichert. die datensätze sollen (so glaube ich) auto crement gespeichert werden? und ist somit die ID für den gespeicherten user.

dieser user kann aber in meinen fall mehrere artikel zum verkauf inserieren. so stelle ich mir das vor. das dann in einer zweiten tabelle ID nochmals gespeichert wird und die artkel eine auto crement haben.

dies erleichert ja dann das ausgeben, wenn jemand nur die artikel dieses „verkäufers“ ausgeben will.

und zum ausgeben ist es sind voll das man jedes man auf die mysqlbank zugreift. sollten z.b 30 artikel die ich auf 2 seiten je 15 aufgelistete artikel ausgeben.
oder gibt es eine smarere möglichkeiten z.b alles in arrays einlesen.

ich brauche hier keine quellcodes oder so. sondern hilfe um gleich am anfang wenns möglich den best möglichen ablauf zu programmieren.

Hi,

1.) Es ist absolut richtig, sich vor Beginn der eigentlichen Arbeit Gedanken zur Struktur der Datenbank und zum Ablauf des geplanten Programms zu machen. Du wirst bald merken, dass die Datenbanktheorie (denn das sind Deine Vorgedanken zur Datenbankstrukturierung) und Programmierlogik (Stichwort Struktogramme …) den eigentlichen Teil der Arbeit ausmachen. Das Ganze in eine Sprache zu fassen (bei Dir wohl PHP) ist dann der Abschluss des Projekts. Du sparst Dir sehr viele Sackgassen, wenn Du diese Vorarbeiten gründlich machst und am Besten zu Papier bringst.

2.) Deine Fragestellung zeigt, dass Du vom Thema überhaupt keine Ahnung hast. Tut mir leid, es so deutlich sagen zu müssen.
Mein Tipp: Kauf Dir ein Fachbuch zum Thema. Ich verwende zur Zeit als Referenz „PHP5 & MySQL5 - Von den Grundlagen zur professionellen Programmierung“ von Stefan Reimers und Gunnar Thieß, erschienen bei Galileo Computing. ISBN 3-89842-693-9 Buch anschauen.

Mir geht’s nicht mal primär um das, ich nenn es mal „Vokabeln pauken“ in SQL und PHP, mir geht es wirklich um das Grundverständnis der Thematik. Was sind Objekte und deren Eigenschaften, was Beziehungen zwischen Daten und wie wirken sie, was ist referenzielle Integrität? Welche Sicherheitskonzepte sind für Deinen Shop sinnvoll und wie sollen sie wirken?

Ich glaube nicht, dass wir Dir das alles, was Du zum Programmieren eines kleinen Webshops wissen musst, hier erklären können. Außerdem wird das ständige Scheitern für Dich auf Dauer so deprimierend werden, dass Du das Projekt fallen lassen wirst. Glaub mir. Ich schreib das nicht, weil ich Dich irgendwie anmachen will. Ich spreche aus Erfahrung.

Jetzt will ich noch auf Deine Frage eingehen: erster Teil: allgemein Ja, bitte sieh Dir die sogenannten „Normalisierungsstufen“ für Datenbanken an. Dort geht es um Integrität und Vermeidung von Redundanz bei Datensätzen. Ggf. googlen.

Zweiter Teil Deiner Frage: Es geht sowohl so als auch so. Es ist eine Frage des Handlings. Im allgemeinen werden in einer MySQL-Abfrage alle Daten geholt, die eine oder mehrere Bedingungen gemeinsam erfüllen (z.Bsp. alle Artikel eines Verkäufers) Diese Ergebnismenge wird in ein php-Array geladen (meistens mit mysql_fetch_array()) und dann dort sortiert, durchsucht, satzweise ausgegeben usw.

Deine Grundüberlegung, den MySQL-Server also nicht mit aus Programmschleifen generierten endlosen Attacken zu malträtieren, ist richtig. Erstens quälst Du damit sinnlos die Maschinen und das ggf. das Netz und zweitens verlangsamt das die Ausführung Deiner Skripte.

Zum Abschluss: Ich würde mich freuen, wenn Du meinen Tipp annimmst und Dich erstmal intensiv in das Thema reinarbeitest. Ich denke, wir alle hier würden Dich gern bei Detailfragen unterstützen. Sollte Dir das alles aber zu mühevoll sein, empfehle ich Dir, Dir mal fertige Systeme anzuschauen. Da gibt es auch einiges Kostenloses im Netz, z. Bsp. Shopsysteme auf Basis von Joomla oder Typo 3 usw.

Grüße Micha

Hi,

ich denke, das was Du suchst, ist eine 1:N Betiehung zwischen zwei Tabellen:

  1. Tabelle: Benutzer
  2. Tabelle: Angebote

In der Benutzertabelle kannst du dann ja die Informationen der eigentlichen User speichern, so z.B. Vorname, Nachname, Username, Passwort (bitte md5-verschlüsselt -> siehe PHP-Funktion). In der Angebotstabelle kannst Du dann alle Informationen speichern, die für das jeweilige Angebot relevant sind.

Wenn Du in der Benutzertabelle die erste Spalte z.B. „user_id“ nennst, dann sollte diese Spalte auch autoinkrement und PRIMARY eingestellt sein, damit das Dein Schlüssel wird, anhand dessen Du den Datensatz identifizieren kannst.

In der Tabelle mit den Angeboten kannst Du dann ebenfalls einen Primärschlüssel mit autoinkrement definieren, den Du (ebenfalls erste Spalte) ggf. offer_id nennst und die zweite Spalte kann dann wieder eine Spalte namens „user_id“ sein. Hier dann aber nur noch als normale ID geschlüsselt, nicht mehr autoinkrement.

Jetzt hast du eine klassische 1:N Beziehung definiert: 1 User (user_id) kann N viele Angebote (offer_id -> via user_id) einstellen.

Auslesen kannst du as mit einem JOIN -> Siehe hierzu das Handbuch von MySQL.

Seitenweise kannst Du auslesen mittels LIMIT -> siehe hierzu das Handbuch von MySQL

Grüße
T.

Ich habe leider überhaupt keine Ahnung was genau die Frage ist.
Sorry, ich kann hier nicht helfen.

Hallo,
wir verwenden leider keine Arrays -
aber das lässt sich auch mit einer 1 zu n
Bedingung bewerkstelligen.
viel Glück noch
Wolfgang

tut mir leid, ich verstehe die anfrage nicht.
m.

eine lösung
mit verknüpfungstabelle arbeiten
eine usertabelle und eine artikeltabelle anlegen.
die id der jeweiligen tabelle in einer weiteren tabelle (2 spalten id-user und id-artikel) verknüpfen.
damit hast du eine n:m beziehung, d. h. du kannst beliebig viele user mit beliebig vielen artikeln verknüpfen ohne redundante daten zu haben.

cu
harald
*******************