#1

Petra

Mitglied  (26 Punkte)  ·   weiblich  ·   Österreich  ·   Nachricht senden
 https://www.myhoroskop.at

Guten Morgen,

ich hatte 2013 eine Simple Website für meine Servietten-Tausch-Seite: aus der SQL Datenbank wurden Abfragen gemacht und dann im Browser die Liste des gewünschten Themas angezeigt. Ich habe es ein bisschen umständlich programmiert - aber es hat funktioniert. Nun bin ich im Ruhestand und wollte mein altes Hobby wieder aufgreifen: Leider sind die php-Daten total veraltet - man schreibt den Code heute wohl anders, kürzer, kompakter und ich kann ihn nicht verstehen, da ich das Projekt seinerzeit in einem angebotenen php-Kurs mit Hilfe der Kursleiterin erstellt habe.

Nun wollte ich im Siquando Pro Shop ein zweites Projekt starten, um mithilfe der SQL-Abfrage vielleicht mein Ziel umzusetzen. Natürlich könnte ich die Servietten auch per Hand einzeln in verschiedene Ordner ablegen und die einzelnen Themen wären über die Navigation auszuwählen. Allerdings gibt es Servietten, auf welchen z. B. Hasen und Tulpen abgebildet sind. Bei einer DB-Abfrage würde dieses Exemplar sowohl beim Thema Hasen, als auch beim Thema Tulpen aufgelistet werden.

Ich schaffe es nicht, die SQL Abfrage dahingehend zu generieren. Ist das überhaupt möglich, dass ein abgefragter Datensatz mit Bild angezeigt wird? Die Spalten sind z. B. ID-Nummer, Name, Hersteller, Größe, Verlinkung zum Bild.

Oder hat jemand einen anderen Lösungsansatz, wie ich so ein Projekt umsetzen könnte? In der DB befinden sich derzeit über 4000 Exemplare - 3000 muss ich noch einscannen.

Vielen Dank für Ideen und Hilfe.

Mit freundlichen Grüßen, Petra

#2

MuggelClan

Forum-Sponsor  (1171 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Hallo Petra,

am besten nimmst du den Absatz "SQL-Abfrage":
- Im ersten Reiter "SQL" kannst du dann den SQL-Code eingeben z.B.:

SELECT * FROM `tabellenname` WHERE `servietten` LIKE '%hase%'

Hier werden die Zeilen von der Tabelle "tabellenname" angezeigt bei denen in der Spalte "servietten" im Wort "hase" vorkommt.

Wichtig ist beim Code, dass du die richtigen Anführungszreichen verwendest.
* selektiert alle Spalten
% steht für weitere Zeichen im Wort, vorne am Wort eingesetzt wird also auch der Osterhase gefunden, hinten hinzugefügt wird hauch das Wort Hasen gefunden.

Um dir besser helfen zu können, wird die Tabellenstruktur benötigt, und was genau du eben abrufen möchtest.

- unten die Zugangsdaten der SQL-Datenbank eingeben

- in der Mitte vom Absatz "SQL-Abfrage" kannst du die "Darstellung" anpassen.

- und im letzten Reiter eventuelle weitere "Parameter" hinzufügen, aber für eine einfache Abfrage wird diese erst mal nicht benötigt.

 


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 9, Web Client 

#3

Petra

Mitglied  (26 Punkte)  ·   weiblich  ·   Österreich  ·   Nachricht senden
 https://www.myhoroskop.at

Vielen, herzlichen Dank. Die Tabelle wird nun angezeigt: https://www.servietten-tausch.at

Gibt es eine Möglichkeit, die Bilder anzeigen zu lassen? Was müsste ich dazu auf der Datenbank verändern? Stimmt die Verlinkung in dieser Form vielleicht nicht? Ich habe Tulpen gewählt, weil das gleich die ersten beiden Servietten in der DB sind.

Dankeschön!

#4

MuggelClan

Forum-Sponsor  (1171 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Hallo Petra,

soweit ich weiß kann die mit dem Absatz SQL-Abfrage generierte Tabelle nur Zeichefolge (string) darstellen, bitte berichtigen falls ich mit hier irre.

D.h. man müsste jetzt hier doch dann eine eigene SQL-Abfrage mit dem HTML-Clip oder PHP-Clip erstellen.

Unabhängig davon, wenn du schon Codes mit Attribute schreibst, müsse diese auch immer abgeschlossen werden, z.B. <a href="..."> ... </a> oder <ul><li><a...>...</a></li></ul> oder ähnlich.

Ansonsten verbiegt dir das die ganze Seite, das merkst du gerade deswegen nicht, da ja alles was du schreibst als Zeichenfolge ausgegeben wird.

Jetzt stellt sich die Frage wie fit du mit SQL-Abfrage per PHP-Code bist.


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 9, Web Client 

#5

Petra

Mitglied  (26 Punkte)  ·   weiblich  ·   Österreich  ·   Nachricht senden
 https://www.myhoroskop.at

Vielen Dank für deine rasche Hilfe! Da erspare ich mir weitere Versuche.

Wenn ich sattelfest mit php wäre, könnte ich meine alten Dateien korrigieren, um die Fehlercodes zu beseitigen. Leider ist das nicht der Fall. Da muss ich mir wohl eine ander Lösung einfallen lassen.

Jede Serviette einzeln als "Produkt" einzufügen ist auch sehr aufwendig.

Vielleicht finde ich jemanden, der mir gegen Bezahlung meine alten Dateien umschreibt oder ich suche weiter nach einer Katalog-Software oder ähnlichem.

Falls jemand eine Idee hat, bitte gerne melden.

Nochmals herzlichen Dank für die Mühen und beste Grüße aus dem Innviertel,

Petra

#6

MuggelClan

Forum-Sponsor  (1171 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Hier mal ein Code für Dich zum Testen, da ich es selber nicht kann (liegt ja alles auf Deinem Server):
Versuche mal folgenden Code im Absatz "PHP-Clip":

Folgende groß geschriebene Wörter mit Deine Zugangsdaten ersetzen:
SERVER
DATENBANKNAME
PASSWORT
TABELLE

$host_name = 'SERVER';
 $database = 'DATENBANKNAME';
 $user_name = 'BENUTZERNAME';
 $password = 'PASSWORT';
 $table= "TABELLE";

 $link = new mysqli($host_name, $user_name, $password, $database);

 if ($link->connect_error) {
 die('<p>Verbindung zum MySQL Server fehlgeschlagen: '. $link->connect_error .'</p>');
 } else {
 echo '<p>Verbindung zum MySQL Server erfolgreich aufgebaut.</p>';
 }

$result=mysqli_query($link, "SELECT `bild` FROM " . $table . " WHERE `bild` LIKE 'http%' "); 
$row_cnt = mysqli_num_rows($result); 
printf("Es sind " . $row_cnt . " Bild-URL eingetragen.<BR />"); 


/* Output of the table in an HTML table */ 
echo "<table><tr>"; 

while ($field = mysqli_fetch_field($result)) { 
 echo "<th>$field->bild</th>"; 
} 
$field_cnt = mysqli_field_count($link); 
echo "</tr>"; 
while($row = mysqli_fetch_row($result)) { 
 echo "<tr>"; 
 for($i = 0; $i < $field_cnt; $i++) { 
 echo "<td>$row[$i]<a href =",$row[$i],"> Bild zeigen</a></td>"; 
 } 
 echo "</tr>\n"; 
} 


echo "</table>"; 


/* Close results */ 
mysqli_free_result($result);
mysqli_close($link);


Die URL in der Spalte "bild" zur Bilddatei in folgender Form eintragen:
https://www.servietten/tausch.at/bild/2.jpg

Jetzt sollte die Spalte "bild" mit den Links (Bild zeigen) angezeigt werden und auch klickbar zu den Bilder sein. Wenn ich nichts falsch geschrieben habe.

SCHAU MA MAL WAS RAUSKOMMT 😉

 
Ausbesserung: hatte WHERE und LIKE zum Ändern übersehen und im Code berichtigt.
Jetzt sollten nur die Einträge angezeigt werden, die auch nur mit http in Spalte "bild" beginnen. Sorry

Das  SELECT `bild` kann auch durch SELECT * ersetzt werden, aber hier wird dann der Link noch bei den anderen Felder mit angezeigt. Das wäre dann der nächste Schritt die komplette Tabelle zu generieren.


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 9, Web Client 


Dieser Beitrag wurde bereits 1 mal bearbeitet, zuletzt von »MuggelClan« (17.02.2025, 16:49)
#7

Petra

Mitglied  (26 Punkte)  ·   weiblich  ·   Österreich  ·   Nachricht senden
 https://www.myhoroskop.at

Vielen Dank für die Mühen und den Lösungsansatz. Das versuche ich mal und melde mich dann.

Liebe Grüße

#8

Petra

Mitglied  (26 Punkte)  ·   weiblich  ·   Österreich  ·   Nachricht senden
 https://www.myhoroskop.at

Die Servietten-Tausch Seite Domain habe ich mit meiner selbstgeschriebenen, fehlerhaften php verbunden und einen php-Befehl zur Unterdrückung der fehlerhaften Notizen eingefügt. So geht es in der Zwischenzeit, bis ich herausgefunden habe, wie ich die Fehler beheben kann.

Deinen Code habe ich unter: https://www.myhoroskop.at/servietten in meine andere Website eingetragen und auf der Datenbank die Serviette Nr. 2 mit https: verlinkt und zwar liegt das Bild unter petra-und-andreas.faily/servietten-tausch/images/2.jpg (wenn ich die komplette Url hier reinschreibe, zeigt es hier das Bild an).

Leider zeigt es im Browser von https://www.myhoroskop.at/servietten nur den Ordner an, den ich in der PRO angelegt habe. Vom Absatz php-Clips sieht man gar nichts.

Ich danke dir trotzdem ganz herzlich und werde schauen, ob ich den alten Code nicht irgendwie fehlerfrei hinbekomme.

Beste Grüße

#9

MuggelClan

Forum-Sponsor  (1171 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden

Die Tabelle wird ei dir nicht erzeugt. Danke fürs testen. Du kannst den Code wieder löschen.

Wenn ich mal Zeit und Luft habe, wede ich mich nach einer Lösung (auch für meine Umsetzung) beschäftigen.
Wenn ich was brauchbares zusammengeschustert habe, dann melde ich mich hier wieder.
Wünsche dir viel Glück die alten Codes erfolgreich zu überarbeiten.


Mit freundlichen Grüßen

Thomas

Web To Date seit 2004, Siquando Web 12, Pro Web 9, Web Client 

#10

Petra

Mitglied  (26 Punkte)  ·   weiblich  ·   Österreich  ·   Nachricht senden
 https://www.myhoroskop.at

Vielen Dank für dein Engagement.

Es wäre großartig, wenn es irgendwann eine Lösung geben würde. Inzwischen "wurschtle" ich mit meinem "gefährlichem Halbwissen", wie mein Sohn meine dahingehenden Versuche bezeichnet, weiter.

Beste Grüße, Petra

6427 Aufrufe | 10 Beiträge