ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
356
356
EMPFEHLEN
-
Hallo,
zuerst einmal ein frohes neues nachträglich!
Folgendes Problem habe ich grad auf dem Tisch und komme nicht weiter.
Ich habe eine MySQL Tabelle in der ich verschiedene Avatar Bildchen speichere. Pro Datensatz können es immer bis zu 10 Stück sein.
Nun möchte ich eine Abfrage gestalten, in der ich nachsehe -
welche Bilder neu sind. Diese möchte ich dann auf der Seite anzeigen.
Die Tabelle heißt avatar_item
und enthält neben meinen gewünschten Daten verschiedene jetzt eher unwichtige Daten.
Ich kann die Einträge vorab ausfiltern, damit ich nicht alle Einträge durchsuchen muss. Das kann ich am
Feld type erkennen.
Dort steht dann avatar drin, wenns ein Eintrag für einen Avatar ist.
Der Datensatz enthält weiter einen datetime Eintrag
modified
der auch bei der Erst Erstellung des Datensatzes das gleiche Datum enthält. Später dann, wird der Datum und Zeitstempel dann bei einer Bearbeitung geändert. Da die Bearbeitung nach dem Ersteintrag nur statt findet, wenn ein weiterer Avatar hinzukommt, ist das Feld
modified für mich das ausschlaggebende !
Der Inhalt des Feldes sieht dann so aus 2011-01-10 23:51:45
Nun möchte ich erreichen, das alle Datensätze durchsucht werden, die Avatare enthalten. Jeder Datensatz kann wie gesagt 10 Avatare enthalten. Wichtig bei der Suche ist für mich immer der letzte Eintrag, der einen Avatar enthält.
Die Daten sind alle in einem Text Feld gespeichert, das
elements heißt.
Der Inhalt dieses Feldes sieht folgendermaßen aus :
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
<?xml version="1.0" encoding="utf-8"?> <elements> <text identifier="12e3333e-8a91-466d-9b1a-d4757a2d4f83"> <value><![CDATA[Comic Jumper - Avatar Arwards]]></value> </text> <image identifier="bfc5f460-d297-43b6-bf49-ffeb8a247313"> <file><![CDATA[images/stories/Avatare/comic_jumper_cover.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[136]]></height> </image> <select identifier="c6af2e74-f898-4a89-8c6c-bf55997ce7ec"> <option><![CDATA[2k-games]]></option> </select> <textarea identifier="eb198cd3-af9b-4ac5-a80c-151d65add04b"> <value><![CDATA[<p>Nach der Einstellung seiner eigenen Comic-Reihe wird Captain Smiley von Twisted Pixel Games gekauft und als Aushilfs-Superheld eingesetzt, der in andere Comics springt und dort alle möglichen Probleme löst. <b>Comic Jumper</b> ist die neueste Schöpfung des Teams hinter den preisgekrönten Spielen <b>Splosion Man</b> und <b>The Maw</b>.</p>]]></value> </textarea> <text identifier="63e16eef-8628-4756-b069-54c1b9fc0684"> <value><![CDATA[Avatar1]]></value> </text> <text identifier="8372a9f7-0794-4350-9b21-e09aad6bbfdb"> <value><![CDATA[Das ist Avatar 1, den bekommt man für..]]></value> </text> <image identifier="a2606f3d-baf8-4310-b603-6145d398c5cb"> <file><![CDATA[images/stories/Avatare/Aqua_aw_1.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="6ad3d31a-d670-41db-bc4e-93b4736ecfa4"> <value><![CDATA[Avatar2]]></value> </text> <text identifier="b2d20b43-9ba7-4431-8a34-8fd8841a4ebf"> <value><![CDATA[Das ist Avatar 2, den bekommt man für..]]></value> </text> <image identifier="9d1f5240-d0d8-47d3-b59e-a724e2b538a7"> <file><![CDATA[images/stories/Avatare/Aqua_aw_3.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="dacd286f-d15b-473a-91de-77f4e032b859"> <value><![CDATA[Avatar3]]></value> </text> <text identifier="9b5604cc-e4d2-4902-887b-e29c2d4508fd"> <value><![CDATA[Das ist Avatar 3, den bekommt man für..]]></value> </text> <image identifier="65ee7e54-a8ea-4191-8e26-07e7961c305f"> <file><![CDATA[images/stories/Avatare/alien_breed_2_aw_1.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="0bdb1ae5-0640-4c7e-85ba-0046bf76b1f9"> <value><![CDATA[Avatar4]]></value> </text> <text identifier="fa613050-43be-4da6-b63c-f09cc649cab1"> <value><![CDATA[Das ist Avatar 4 den bekommt man für..]]></value> </text> <image identifier="b9433253-f5eb-4fca-ad1c-dceaa71f3229"> <file><![CDATA[images/stories/Avatare/alien_breed_2_aw_2.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="b8edb888-d369-4281-abf4-b81997a2e2f2"> <value><![CDATA[Avatar5]]></value> </text> <text identifier="86d0e4cd-9be5-4f9b-861b-81aadd1459cb"> <value><![CDATA[Das ist Avatar5, den bekommt man für..]]></value> </text> <image identifier="d847fa8c-2d11-4440-b55c-927b1e3076f4"> <file><![CDATA[images/stories/Avatare/alien_breed_2_aw_3.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="43682832-3be6-4883-9e5e-2172b5813e14"> <value><![CDATA[Avatar6]]></value> </text> <text identifier="47eac9ac-51c7-420b-88b3-7e657f0ae00c"> <value><![CDATA[Das ist Avatar 6, den bekommt man für..]]></value> </text> <image identifier="bfdd2c25-87e8-4884-b2c9-9c9cc265927c"> <file><![CDATA[images/stories/Avatare/comic_jumper_aw_1.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="30fad788-a13e-47f3-8a3a-ad3f2b7f570c"> <value><![CDATA[Avatar7]]></value> </text> <text identifier="c1aa8713-13fb-4701-80ce-0ceec0a9e333"> <value><![CDATA[Das ist Avatar 7, den bekommt man für..]]></value> </text> <image identifier="73e72ec7-8fbb-47c6-a217-9dec5eed06e3"> <file><![CDATA[images/stories/Avatare/comic_jumper_aw_2.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="934211f8-218a-45dc-b08e-2a100e46f436"> <value><![CDATA[Avatar8]]></value> </text> <text identifier="0eca7438-e593-4243-9265-9587e1778c55"> <value><![CDATA[Das ist Avatar82, den bekommt man für..]]></value> </text> <image identifier="392cc880-1be7-45d0-bee0-073d011b2494"> <file><![CDATA[images/stories/Avatare/comic_jumper_aw_3.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="0e49f6db-64f3-468e-8478-890a2cdc90ae"> <value><![CDATA[Avatar9]]></value> </text> <text identifier="a226ca36-9a3c-4dbb-8796-6907b0c50b6a"> <value><![CDATA[Das ist Avatar 9, den bekommt man für..]]></value> </text> <image identifier="de06f985-eb75-4b9c-98bf-641c10686b55"> <file><![CDATA[images/stories/Avatare/costume_quest_aw_1.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <text identifier="5242a913-f834-4ac2-9584-ad02c603d052"> <value><![CDATA[Avatar10]]></value> </text> <text identifier="a578e92f-1d0f-4063-827c-db1bf9602fda"> <value><![CDATA[Das ist Avatar 10, den bekommt man für..]]></value> </text> <image identifier="09d23a30-577b-4c94-9038-e2702db5cad0"> <file><![CDATA[images/stories/Avatare/costume_quest_aw_2.jpg]]></file> <title/> <link/> <target/> <rel/> <lightbox_image/> <width><![CDATA[100]]></width> <height><![CDATA[100]]></height> </image> <link identifier="9abba42f-58d7-4eba-8237-4d0bf7feb0a0"> <value><![CDATA[http://domain.com/]]></value> <text><![CDATA[Mitspielersuche]]></text> <target><![CDATA[1]]></target> <custom_title><![CDATA[Mitspieler Suche]]></custom_title> <rel/> </link> <text identifier="207c40eb-485a-47c5-8940-7568331f18c0"> <value><![CDATA[Voraussichtlich 3 Auszeichnungen]]></value> </text> <link identifier="1afb3554-4fda-4b16-a1d0-931c952c4ebb"> <value><![CDATA[http://domain.com/board/viewforum.php?f=16]]></value> <text><![CDATA[Finde hilfreiche Tips in unserem Forum]]></text> <target/> <custom_title><![CDATA[Hilfreiche Tips]]></custom_title> <rel/> </link> <text identifier="d478a841-1e41-4d64-85f3-6268fd666d21"> <value><![CDATA[2 Stunden]]></value> </text> <text identifier="43d7e6d9-2068-4118-84e8-578c9450f0cc"> <value><![CDATA[Einfach]]></value> </text> <text identifier="c8bf483d-83af-4530-84df-e7a8dcdd944f"> <value><![CDATA[800 MSP]]></value> </text> <link identifier="50d254f2-d133-4114-8534-f3b0abca71e8"> <value><![CDATA[http://domain.comu]]></value> <text/> <target/> <custom_title/> <rel/> </link> <text identifier="5358a13d-2d80-4c47-aef8-14b36b0ace14"> <value><![CDATA[Henry Maske]]></value> </text> <socialbookmarks identifier="f03e59a0-c204-4c70-a363-7c067627dea0"> <value><![CDATA[1]]></value> </socialbookmarks> <rating identifier="60c03c52-56d3-42c6-82c4-f68ada98c429"> <votes/> <value/> </rating> <relateditems identifier="74acc9a8-73a9-471f-8b34-05d09eb36580"/> <checkbox identifier="00d7b336-d8f2-4d90-9ab0-e431705a481d"> <option><![CDATA[img-srcimagesstoriessystemexbox360gif]]></option> </checkbox> <checkbox identifier="00e2574b-9e73-43f6-a04c-1fbe36979449"/> <facebookilike identifier="e0ef2447-9668-4efc-b9fe-c3f7f2d1cce6"> <value><![CDATA[1]]></value> </facebookilike> </elements>
Zum Beispiel wäre das hier Avatar10 von einem imaginären Datensatz, von denen mehrere Datensätze gespeichert sein können.
Code :1 2 3 4 5 6 7 8
<text identifier="5242a913-f834-4ac2-9584-ad02c603d052"> <value><![CDATA[Avatar10]]></value> </text> <text identifier="a578e92f-1d0f-4063-827c-db1bf9602fda"> <value><![CDATA[Das ist Avatar 10, den bekommt man für..]]></value> </text> <image identifier="09d23a30-577b-4c94-9038-e2702db5cad0"> <file><![CDATA[images/stories/Avatare/costume_quest_aw_2.jpg]]></file>
Nun die Frage :
Wie muss eine Abfrage aussehen, die folgendes Ergebnis hat.
1.) Durchsuche alle Datensätze dieser Tabelle nach Datensätzen, die ein Avatar sind.
2.) Lese in allen Datensätzen nach, wann der Datensatz das letzte mal aktualisiert wurde.
3.) Suche die 10 Datensätze heraus, die am aktuellsten sind.
4.) Gebe mir von den aktuellsten 10 Datensätzen den jeweils letzten eingetragenen Avatar aus, in form des Bilderlinks.
5.) gebe mir den Inhalt des Feldes alias ( ist ein Feld aus dem Datensatz-ist also in jedem Datensatz ein Feld wie datetime.) aus, in Form von Text.
Wenn zum Beispiel in einem Datensatz keiner von 10 möglichen Avatare enthalten sind, dann bleiben die Inhalte leer. Also im XML Eintrag steht dann nur der Datensatz drin, der zuletzt eingetragen ist.
Beispiel, wenn Avatar10 nicht existiert, dann ist der letzte Avatar dann Avatar9 oder eben bis runter zu Avatar 1. Eventuell müsste man noch berücksichtigen, wenn man den Datensatz speichert und aus irgend einem Grund hat der User vergessen, ein Bild hochzuladen - das man dann so verkehrt, ist der Datensatz aktuell und trifft zu - aber es ist kein Avatar gespeichert worden, dann vergiss diesen Datensatz.
Das ist im wesentlichen, was ich nicht hinbekomme...
Gibt es jemanden unter euch, der mir das mal näher erklären kann, wie ich das realisieren könnte ****
Vielen Dank für eure möglichen Antworten und Hilfestellungen im voraus.
Liebe Grüße
Kasi
-
12.01.11 21:24 #2
Also vielleicht bin ich zu blond für das, was du vorhast. Lass mich wiederholen:
Du hast eine MySql-Tabelle.
In dieser MySql-Tabelle, kippst du in einem einzigen Textfeld dieses XML ab, das du oben präsentiert hast.
In diesem XML soll nun nach dem letzten Avatar gesucht werden.
Das ist in meinen Augen nicht sinnvoll. Warum baust du nicht eine ganz normale MySql-Tabelle mit diesen Avataren. Dann geht alles supereinfach und superschnell. Denn selbst wenn es eine Lösung gäbe, dies mit RegExen zu lösen - wie lange soll denn eine solche Abfrage eigentlich laufen, wenn deine Datenbank voll ist?
Irgendwo wird dieses XML ja zusammengebaut werden. Das ist der Ort, an dem ich die Daten auch für deinen beschriebenen Zweck aufbereitet in eine MySql-Tabelle einfügen würde. Das ist leider alles, was ich bieten kan.
-
Hallo Anna,
wenn das so einfach gehen würde - dann hätte ich es sicher so gemacht. Es geht aber dabei um eine Software, die das vorgibt und in diesem Punkt nicht verändert werden kann. Ich bin heute aber scho nein Stück weiter gekommen und konnte zumindest meine Abfragen fehlerfrei formulieren. Jetzt habe ich aber noch das Problem, das diese Abfragen in einen Guss kommen. Vielleicht fällt dir ja dazu auch was ein - das es bei vielen Dingen bessere Lösungen gibt, ist mir klar. Aber meine Abfrage zur Hilfe hatte mehr den Focus auf das Problem an sich, weniger auf "was besser wäre". An diesem Punkt komme ich eben nicht vorwärts und deshalb meine Anfrage im Forum.
Danke aber dennoch, das du dich bemüht hast, mir einen Weg aufzuzeigen. Nur leider habe ich in diesem Punkt keine Alternativen zum Problem
Achso, Es gibt nicht soviele Daten dazu - es werden dauerhaft vielleicht um die 200 Avatare, aber davon bin ich noch lange,lange entfernt
Geändert von Kasimir61 (13.01.11 um 07:04 Uhr) Grund: Fehlerchen
-
Also, nachdem ich mal ein wenig getüftelt habe, habe ich mit Hilfe von jemanden zumindest die Abfragen hinbekommen, ohne das es Fehler gab.
Nun muss ich irgendwie erreichen, das ich die Daten bekomme, die mein Herz begehrt
Hier mal der Ansatz - Ich würde mich sehr über Hilfe freuen...
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
<?php mysql_connect("localhost","user","passwort"); mysql_select_db("tabelle"); $abfrage=mysql_query("select * from zoo_item where type = 'avatar'"); $abfrage2=mysql_query("select modified from zoo_item"); $abfrage3=mysql_query("select * from zoo_item.elements WHERE file IS NOT NULL order by modified desc limit 10"); $Abfrage4=mysql_query("select file from (select * from zoo_item.elements order by modified desc limit 10) a order by a.modified asc limit 1"); $abfrage5=mysql_query("select alias from zoo_item"); :eek: hier hängt es ! - Wie bekomme ich es hin, das alle Abfragen ausgeführt werden und nur noch das gewünschte Ergebnis unten heraus kommt **** :) Die Abfragen einzeln haben keine Fehler, das läuft durch - aber eben müssten ja alle Abfragen zuerst erfüllt sein, bevor das Ergebnis was ich möchte - da ist .... $result= mysql_query($alles); while($row=mysql_fetch_array($result)) {echo $row['alias']. '/'; echo $row['file'].'<br>'; } ?>
Vielen Dank für eure mögliche Hilfe
KasiGeändert von Kasimir61 (13.01.11 um 07:06 Uhr) Grund: Text zu lang, muss man immer scrollen...
Ähnliche Themen
-
Nach dem Empfangen von Daten aus einer PHP-Datei im Dokument ausgeben
Von typhoch2 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 08.03.10, 13:40 -
DB Daten mit .txt Daten abgleichen und auswerten
Von creativeheadz im Forum PHPAntworten: 9Letzter Beitrag: 09.04.09, 18:54 -
CGI daten auswerten
Von kurcob im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 02.01.07, 14:40 -
Datei öffnen - nach Daten suchen und ausgeben - Hilfe!
Von dwex im Forum PHPAntworten: 2Letzter Beitrag: 04.07.05, 18:52 -
Daten auswerten
Von dennislassiter im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 20.04.04, 20:38





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren