• Da ich keine passende Software für meine Serviettensammlung gefunden habe, habe ich einen Online-Workshop absolviert und konnnte anhand der durchgenommenen Beispiele einen Code erstellen, der meine Servietten z. Bsp. nach Motiv selektiert anzeigt:
    http://www.servietten-tausch.at/serviettendb/tulpen.php

    Ich habe bei o. g. Seite das Script direkt in die Seite Tulpen eingefügt - Abfrage: WHERE motiv = 'tulpen'

    Ich weiß, dass ich nun eigentlich die Seite so programmieren sollte, dass sich anhand von Variablen der Inhalt ändert, wenn man auf einen Link z. Bsp. im Inhaltsverzeichnis klickt - aber das schaffe ich nicht.

    Kann ich alternativ für jede gewünschte Anzeige eine weitere html-Seite erstellen, Code einfügen und Abfrage ändern (Seite Tiger: WHERE motiv = 'tiger', Seite Größe Lunchserviette: WHERE size = 'Lunchserviette', usw)
    Es werden schon einige Abfragen zusammenkommen (5000 Serviettenmotive, Selektion nach Motiv, Hersteller, Größe, Designer usw.).

    Ist diese Anfänger-Variante grundsätzlich möglich, oder gibt es Nachteile (Ladezeit oder sonst was?). Die Mehrarbeit wäre egal - muss je nicht alles sofort fertig sein.

    Danke!

  • Du willst doch nicht ernsthaft für 5000 Motive 5000 Scripte bauen, oder? Das wäre Wahnsinn hoch neun. Wenn du mit Variablen, die an ein Script übergeben werden, noch nicht klar kommst, solltest du das unbedingt lernen, weil du sonst deinen Aufwand um ein vilefaches erhöhst und völlig Quatsch wäre. Erkläre uns genau, was das Script können soll und wie deine Datenbank aussieht. Und poste und deinen Quellcode (aber bitte formatiert), mal sehen, was wir für dich machen können.

  • Danke für deine Antwort - es wären "nur" ca 100 Seiten (5000 Servietten, ca 50 Motive, zuzüglich Selektion nach Größe usw.)

    Ich habe 1 Datenbanktabelle: servietten

    Und die "Tulpenseite" sieht so aus:

    Ich bräuchte noch eine Blätterfunktion und eben eine Antwort, ob ich - wegen Dummheit (der php-code ist ja nur umgeschrieben, nicht selbst erstellt) - halt die Seiten so jeweils schreiben kann, ohne dass es grobe Nachteile gibt (außer meiner Zeit). Mein Hobby ist ja nicht programmieren, sondern Servietten sammeln - und hätte ich eine fertige Software gefunden, dann hätte ich sie mir gekauft. Es ist schon eine große Erleichterung, wenn ich pro Serviette nur noch 1 Datensatz eingeben muss und die Anzeige automatisch erfolgt.

    Danke für Hilfe!
    Petra

  • Ich habe im Moment etwas Stress und kann mich nicht damit beschäftigen. Wenn sich keiner findet, der dir dabei hilft, musst du bis Freitag oder Samstag warten, heute schaffe ich das wohl nicht.

  • Vielen Dank! Zeit ist kein Problem - ist ja nur fürs Hobby.

    Außerdem kann ich ja täglich ein paar Servietten in die Datenbank einfügen - das dauert ohnehin "ewig".

    Danke nochmal - wenns was kostet, einfach sagen.

    LG, Petra

  • Das "Problem" der vielen Seiten kannst Du durch einen Parameter umgehen den Du an die URL anhängst.

    Beispiel:
    Aufruf: servietten.php?motiv=tulpen

    PHP

    PHP
    $motiv = $_GET['motiv'];
    $sql = "SELECT * 
      FROM servietten
      WHERE motiv ='".mysql_escape_string($motiv)."'";

    Dadurch kannst Du für alle Motive eine Seite, eine einzelne Datei.

    Wenn Du weitere Ansichten brauchst, könntest Du diese eine Datei auch so anpassen, dass man den Ansichtstyp und dessen Wert übergibt.
    Beispiel:
    Aufruf: servietten.php?motiv=tulpen&type=motiv

    Das müsstest Du nur noch um jeden Ansichtstyp (design oder so) ergänzen.

    Über diese Parameter könntest Du dann auch die Überschriften (<h1>Tulpen</h1>) und Texte beeinflussen (und diese ggfs. auch aus einer Datenbanktabelle laden).

  • HURRAAAA! Es hat geklappt - VIELEN DANK!!!!!

    Die Überschrift Tulpen im Div Content 1 wollte ich ändern:

    <div id="content1">
    <?php
    require "verbindung.inc.php";
    $motiv = $_GET["motiv"];
    echo .... der Rest war Mist, hat nicht geklappt.

    Bitte noch Fragen:

    1.Kennst du die einfachste aller Blätterfunktionen? Ich habe schon gegoogelt, aber ich habe die Codes wohl falsch eingebaut - nichts hat funktioniert.

    2. Gibt es auch eine Möglichkeit das Kopfbild im Div: mitte lt. url-parameter zu ändern? Was müsste in diesem Div stehen, wenn das Bild jeweils so heißen würde, wie das Motiv, also tulpen.jpg, rosen.jpg usw.

    Danke für deine Mühen und deine Hilfe!

    ♥-lichen Dank!


  • 1.Kennst du die einfachste aller Blätterfunktionen? Ich habe schon gegoogelt, aber ich habe die Codes wohl falsch eingebaut - nichts hat funktioniert.

    Die einfachste Blätterfunktion ist, dass du einen Links- und Rechts-Pfeil nimmst und die beiden Pfeile mit der vorhergehenden bzw. nachfolgenden Seite verlinkst. So mache ich es auf meiner Rätselseite, z. B. hier :arrow: Quiz Allgemeinwissen - ziemlich weit unten.

  • ÜBERSCHRIFT $motiv

    Also, wenn ich in den Content2-Div ganz am Anfang den Code eingebe:

    PHP
    <div id="content2">       
    <?php
    
    require "verbindung.inc.php";
     $motiv = $_GET['motiv'];
           echo $motiv;

    ..., dann bekommt meine Anzeigetabelle eine Überschrift lt. $motiv (allerdings in der CSS für die normale Schriftgröße für diesen Div)

    Wenn ich in den Container1-Div schreibe:

    PHP
    <div id="content1">       
    <?php
    
    require "verbindung.inc.php";
     $motiv = $_GET['motiv'];
           echo $motiv;
    ?>

    Dann ist die ganze Seite ohne Ansicht. Hier könnte die CSS-Formatierung (andere Schrift und Schriftgröße) greifen - vielleicht. Dann wäre die Überschrift größer...


    Woran kann das liegen?
    Danke!

    2 Mal editiert, zuletzt von Peschu (4. Mai 2012 um 07:45)

  • Die Website ist nun direkt unter der Domain http://www.servietten-tausch.at aufrufbar - aber nichts ist fertig.....

    Folgende Fragen/Änderungswünsche sind nun noch offen, und ich hoffe, dass mir jemand helfen kann (unter "Links" habe ich schon ein Dankeschön an dieses Forum platziert - ohne eure Hilfe wäre ich nicht so weit gekommen ♥-liches Dankeschön!!!)

    1. Kann ich bei nachstehendem Code auch eine LIKE Abfrage machen, da ich bei manchen Servietten 2 Motivnamen in das Datenfeld eingetragen habe - wie würde der Code dann aussehen? (Habs schon probiert - aber es klappt nicht, wahrscheinlich Syntaxfehler)

    PHP
    $motiv = $_GET['motiv'];
    $sql = "SELECT * 
      FROM servietten
      WHERE motiv ='".mysql_escape_string($motiv)."'";

    2. Kann ich bei der Abfrage die Reihenfolge der Anzeige so steuern, dass das Feld "name" alphabetisch gereiht wird, damit gleiche Servietten in verschiedenen Farben, bzw. in anderem Format untereinander angezeigt werden. Ich weiß leider nicht, wo ich ORDER by name ASCI oder so eintragen muss (bisher nur Fehler - wahrscheinlich Syntax)

    3. Wer kann mir genau erklären, ob und wie es möglich ist, aus der Url mit Parameter auch eine Verbindung zu einem bestimmten Bild (Headergrafik) herzustellen, so dass z. Bsp. bei der Auswahl Rosen, als Headergrafik das dafür vorgesehene Bild "rosen.jpg" oben im Div "mitte" angezeigt wird - oder ist das zu kompliziert.

    4. Noch immer suche ich eine einfache Funktion zum blättern - die Pfeile mit der Verlinkung auf die nächste Seite gefallen mir gut, aber die Website weiß ja nicht, dass sie nach 30 Datensätzen eine neue Anzeigeseite generieren soll.....???

    5. Die Überschrift bei der Anzeige - siehe Startseite Mitte Link "Rosen" kann ich nicht formatieren - im selben Container wie der restliche php-Code klappt die Anzeige "Rosen" als Überschrift über der Datensatztabelle - allerdings kann ich Größe/Farbe nicht formatieren -
    eecho <h3>$motiv</h3>; hat nicht funktioniert

    PHP
    <div id="content2">       
    <?php
    
    require "verbindung.inc.php";
     $motiv = $_GET['motiv'];
           echo $motiv;

    Vielleicht hat jemand mal Zeit, sich das anzuschauen und mir eventuell weiterzuheilfen - oder auch einfache Verbesserungen, für die Gestaltung oder Struktur.

    Übrigens .... die Links für die einzelnen Motive muss ich erst setzen- voraussichtlich fange ich am Nachmittag an. Muss zuerst mal einkaufen und das nötigste im Haushalt für meine family erledigen.

    Schönen Samstag euch allen! :)

    LG., Petra

  • 1. [..]

    PHP
    $motiv = $_GET['motiv'];
    $motiv2 = $_GET['motiv2'];
    $sql = "SELECT * 
      FROM servietten
      WHERE motiv ='".mysql_escape_string($motiv)."'";
    if( strlen($motiv2) > 0 ){  $sql .= "OR motiv = '".mysql_escape_string($motiv2)."'"; }

    So wäre der alternative Name optional als Parameter in der URL übergebbar.

    Zitat

    2. [..]

    Mit ORDER BY liegst Du schon richtig. Ein Blick ins Handbuch zeigt dir wo ORDER BY hin muss:
    http://dev.mysql.com/doc/refman/5.0…timization.html

    Zitat

    3. Wer kann mir genau erklären, ob und wie es möglich ist, aus der Url mit Parameter auch eine Verbindung zu einem bestimmten Bild (Headergrafik) herzustellen, so dass z. Bsp. bei der Auswahl Rosen, als Headergrafik das dafür vorgesehene Bild "rosen.jpg" oben im Div "mitte" angezeigt wird - oder ist das zu kompliziert.

    Das ist natürlich möglich. Die Umsetzung hängt jedoch ganz von dir und deiner Programmierung ab.

    Ein Beispiel:
    Man könnte den Namen für die Headergrafik optional als Parameter übergeben.

    Code
    ...&amp;headergrafik=rosen.jpg
    PHP
    $headergrafik = "standard.jpg";
    if( isset($_GET("headergrafik") ) { $headergrafik = $_GET['headergrafik']; }
    [..]
    ?><img src="<?php echo $headergrafik; ?>" alt=""><?php

    ABER:
    Dadurch ermöglichst Du jedem Nutzer theoretisch eine beliebige Grafik an der Stelle anzuzeigen. Das kann im schlimmsten Fall zu einem Sicherheitsrisiko für deine Webseite werden.

    Daher wäre die beste Lösung, dass Du diese Headergrafiken auch in einer Datenbanktabelle speicherst und als Parameter höchstens die ID der Grafik übergibst, diese mit PHP aus der Datenbanktabelle ausliest und dann anzeigst. Das wäre schon ein etwas sicherer Weg.

    Zitat

    4. Noch immer suche ich eine einfache Funktion zum blättern - die Pfeile mit der Verlinkung auf die nächste Seite gefallen mir gut, aber die Website weiß ja nicht, dass sie nach 30 Datensätzen eine neue Anzeigeseite generieren soll.....???

    Es gibt sooo viele fertige Funktionen dafür, eine davon wirst Du doch sicher schon gefunden haben?
    http://www.php-einfach.de/tuts_mysql_blaetterfunktion.php
    http://www.web-skripte.de/script-blaettern.htm

    Da die angezeigten Daten aus MySQL stammen, sollte man ggfs. dieses Blättern auch auf Basis von MySQL realisieren. Das bringt besonders bei großen Datenbankergebnissen einen erheblichen Performance-Gewinn. Beispiele:
    http://neunzehn83.de/blog/2010/07/1…alc_found_rows/

    Zitat

    5. Die Überschrift bei der Anzeige - siehe Startseite Mitte Link "Rosen" kann ich nicht formatieren

    So einen Link sehe ich momentan nicht. Wenn Du die Größe einer Überschrift beeinflussen willst, geschieht dies immer per CSS. Beispiel:

    Code
    h3 { font-size: 16px; }

    Bei den Überschriften solltest Du zudem darauf achten, dass die Überschrift, welche das Thema der aktuell aufgerufenenen Seite beschreibt die h1 hat. Alle anderen Überschriften sollten h2 bis h6 haben, je nachdem wie tief Du die Inhalte jeder Seite untergliederst. Die Größe jeder einzelnen Überschriften ist per CSS steuerbar.

  • Zu 1.) wolltest du ja glaubs 2 Motive in der Datenbank, nicht nach 2 Motiven suchen, oder? In diesem falle wäre die Abfrage wie folgt:

    PHP
    $sql="SELECT *
    FROM servietten
    WHERE motiv LIKE'".
    mysql_real_escape_string($motiv)."'";

    Für das Hintergrundbild gäbs auch die Möglichkeit, für jedes Motiv eine hintergrundgrafik à la "motiv.jpg" zu erstellen, dann kannst du die Grafik einfach mit dem Motiv-parameter dan du ja sowieso schon hast einbinden, also so:

    HTML
    <div style="background-image: url('images/<?=$motiv?>.jpg')">
    </div>

    Einmal editiert, zuletzt von lukasn (5. Mai 2012 um 11:05)

  • Viele gute Tipps, aber leider auch nicht optimal und auch teilweise fehlerhaft.

    Die Idee von threadi, mehrere Motive per URL zu übergeben, ist gut, die Umsetzung hat leider einen Nachteil: Wenn noch ein drittes Motiv hinzukommen soll, greift man wieder an mehrern Stellen im Quellcode ein. Hier mal mein Vorschlag:

    In einer config-Datei diese Zeile einbauen:

    PHP
    define ('MAX_MOTIVE', 2);


    Dann im Quellcode:


    Wenn jetzt sogar 3 oder mehr Motive zulässig werden, ändere ich in der config die Zahl und bin fertig.

    Was ich immer wieder lustig finde, sind Variablen $motiv, $motiv2. Wo ist $motiv1??? Warum nicht mit 1 anfangen und dann durchnummeriren?

    lukasn
    Dein Like bringt so nichts, das ist das gleiche wie motiv='wert'

    Peschu
    Mehrere Werte in einer Tabellenspalte mit Komma getrennt sind immer ungünstig und führt in der Regel früher oder später zu Problemen.

    Einmal editiert, zuletzt von Bandit (5. Mai 2012 um 11:55)

  • Whoops, sorry, hab den post etwas zu schnell abgeschickt. So sollte es aussehen:

    $sql="SELECT *
    FROM servietten
    WHERE motiv LIKE '%".
    mysql_real_escape_string($motiv)."%'";

  • Schon besser, bis auf "Select *". Und tut euch selber einen gefallen und gewöhnt euch die Backticks bei Tabellen- und Spaltennamen an. ;)

  • Zuerst: VIELEN DANK!!!!

    Ich werde Schritt für Schritt alles ausprobieren und mich bemühen, alles richtig umzusetzen. So leicht ist das nicht für mich: ich bin noch ohne PC aufgewachsen und 1995 habe ich noch felsenfest behauptet (als Mann und Kinder einen PC haben wollten): Ein Computer kommt mir nicht ins Haus! - Ich habe mich nicht durchgesetzt und schön langsam durch die vorhandenen Anwendugsprogramme "gekämpft". Für mich ist der StatusQuo bereits ein Erfolg.
    Bezüglich Motive: Bei einer Serviette, die eine Rose und einen Schmetterling als Motiv hat, habe ich unter Motiv: Rose, Schmetterling eingetragen und wenn es geht könnte sie sowohl bei der Abfrage für Rosen, als auch bei der Abfrage für Schmetterlinge angezeigt werden. Falls es nicht geht, ist es auch nicht tragisch - man kann nicht alles haben.

    Nochmals vielen Dank und wenn jemand einen Backlink für seine eigene Seite braucht, bitte einfach melden - mache das gerne.

  • Bestimmt habe ich die vielen Satzzeichen falsch gesetzt - es klappt nicht mit dem Sortieren:

    PHP
    $motiv = $_GET['motiv'];
    $sql = "SELECT * 
      FROM servietten 
      WHERE motiv ='".mysql_escape_string($motiv)."';
      ORDER BY name;"
      $erg = $mysqli->query($sql) or die ($mysqli->error);

    ????? Wer sieht den Fehler? - Danke