php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-10-2005, 15:45
yakuzza
 Junior Member
Links : Onlinestatus : yakuzza ist offline
Registriert seit: Jul 2005
Beiträge: 108
yakuzza ist zur Zeit noch ein unbeschriebenes Blatt
Standard array mit integer in mysql vergleichen

Hallo,

ich speichere über ein php formular (mehrfachauswahl) ein array mittels serialize in eine zelle einer tabelle.

in einer Tabelle z.B. bestellung werden die ausgewählten artikel in einem array in der zelle artikel gespeichert. Der Wert eines Artikel ist seine ID in der Tabelle Artikel.

nun möchte ich eine abfrage erstellen inder ich die ID aus der Tabelle Artikel mit dem Array in der Tabelle Bestellung vergleiche.

ID = (INT)
z.b. 1, 2, 3 usw...

Artikel = ARRAY (über serialize eingefügt)

Der Eintrag von Artikel sieht z.b. so aus:

Code:
a:2:{i:0;s:9:"243265342";i:1;s:8:"24332564";}
Kennt sich jmd. mit so etwas aus?

Geändert von yakuzza (07-10-2005 um 15:49 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 07-10-2005, 15:55
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was heißt "vergleichen"? was genau willst du selektieren?
Mit Zitat antworten
  #3 (permalink)  
Alt 07-10-2005, 16:01
yakuzza
 Junior Member
Links : Onlinestatus : yakuzza ist offline
Registriert seit: Jul 2005
Beiträge: 108
yakuzza ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich möchte z.b.

das Feld ID aus der einen Tabelle mit den Werten des Arrays aus der 2. Tabelle vergleichen.


das array enthält ids aus der ersten tabelle..

Ich wähle in einer Liste mit mehrfachauswahl ein paar einträge aus, diese haben als wert die id des artikels.

die abfrage sollte ungefähr so lauten


Select * From tabelle1, tabelle2 where ID LIKE Artikel.. geht aber ja nicht da im feld artikel ein array sitzt.
Mit Zitat antworten
  #4 (permalink)  
Alt 07-10-2005, 16:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von yakuzza
geht aber ja nicht da im feld artikel ein array sitzt.
Ach nee, schau an.

Also müsstest du dir wohl entweder in SQL erst mal eine Parser-Funktion basteln, die anhand der serialisierten Daten ermitteln kann, welcher Teil davon nun einer ID entspricht - oder du verzichtest auf das serialisierte Ablegen der Daten in der DB. Ich verstehe sowieso nicht, wozu das gut sein soll.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 07-10-2005, 16:05
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erst die zelle auslesen, unserialize() anwenden, einzelne elemente durchlaufen, eine query bilden ("WHERE ... IN (id1, id2, id3)" o.ä.), ausführen, genießen.
Mit Zitat antworten
  #6 (permalink)  
Alt 07-10-2005, 16:15
yakuzza
 Junior Member
Links : Onlinestatus : yakuzza ist offline
Registriert seit: Jul 2005
Beiträge: 108
yakuzza ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga

verstehe sowieso nicht, wozu das gut sein soll.
Kennst du noch ne andere Möglichkeit mit der ich ein Select Feld mit mehrfachauswahl in eine tabellen zelle einfügen kann, außer mittels serialize?
Mit Zitat antworten
  #7 (permalink)  
Alt 07-10-2005, 16:17
yakuzza
 Junior Member
Links : Onlinestatus : yakuzza ist offline
Registriert seit: Jul 2005
Beiträge: 108
yakuzza ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von penizillin
erst die zelle auslesen, unserialize() anwenden, einzelne elemente durchlaufen, eine query bilden ("WHERE ... IN (id1, id2, id3)" o.ä.), ausführen, genießen.
Das wäre ne möglichkeit.. Ich denke einfach immer zu kompliziert
Mit Zitat antworten
  #8 (permalink)  
Alt 07-10-2005, 16:18
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

yakuzza, weißt du, was "normalisierung" im bezug auf die rdbms bedeutet?
Mit Zitat antworten
  #9 (permalink)  
Alt 07-10-2005, 16:58
yakuzza
 Junior Member
Links : Onlinestatus : yakuzza ist offline
Registriert seit: Jul 2005
Beiträge: 108
yakuzza ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, und das ist gerade das problem.. meine tabellen sind zentral aufgebaut das ich eben eine normalisierte form erhalte.. allerdings hab ich damit noch ein paar kleinere probleme, da ich "learning by doing" noch kein profi in dem thema bin..


wie gesagt existiert z.b. eine tabelle namens artikel, dort werden alle wichtigen eigenschaften eines artikels gespeichert, alles was mit dem artikel zu tun hat.

in der bestellform wird diese tabelle dann zuerst abgefragt um eine auswahl von artikeln zu erhalten.

die auswahl wird an ein script übergeben das die daten dann an die datenbank übergibt.. der formularwert des bestellten artikels ist die ID (Primärschlüssel) des artikels in der tabelle artikel..
Mit Zitat antworten
  #10 (permalink)  
Alt 07-10-2005, 17:04
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und welche "vorteile" bringt das serialisieren gegenüber dem einfachen zuordnungsprinzip "user_id -> artikel_id" (ein datensatz pro zuordnung)?
Mit Zitat antworten
  #11 (permalink)  
Alt 07-10-2005, 17:19
yakuzza
 Junior Member
Links : Onlinestatus : yakuzza ist offline
Registriert seit: Jul 2005
Beiträge: 108
yakuzza ist zur Zeit noch ein unbeschriebenes Blatt
Standard

noch gar keinen, das problem ist das ich über die mehrfachselect form mehrere artikel in einer zelle speichere..

wenn ich diese daten folgendermaßen absende z.b.

artikel[]

steht in der zelle nun ARRAY

speichere ich sie aber so:

$artikel = serialize($_POST['artikel'][$i])

und füge diese dann über ein for schleife in die tabelle ein kann ich alle werte speichern..

vlt. ist das ja auch ein zu komplexer weg.. für andere vorschläge bin ich gerne offen.. hab lange gesucht und nur die serialize möglichkeit gefunden..
Mit Zitat antworten
  #12 (permalink)  
Alt 07-10-2005, 17:44
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das ist ein typisches vorgehen - du machst es dir an einer stelle (beim speichern) einfach, bekommst aber an einer anderen stelle (auslesen) probleme.

einen vorschlag habe ich dir bereits gemacht.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:43 Uhr.