| 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! Post your PHP questions here! |
 |
|

12-11-2004, 16:11
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
is_int($artikelnummer) ist also $artikelnummer[1] und beim nächsten mal $artikelnummer[2]
für die "sammelabfrage" schau dir mal implode und http://dev.mysql.com/doc/mysql/de/Co...Operators.html an (vor allem IN ist einen blick wert)
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

12-11-2004, 16:20
|
|
antman
Member
|
|
Registriert seit: Jun 2004
Beiträge: 451
|
|
ok,ok, jetzt habe ich gerafft, was du mir sagen wolltest:
Also so:
PHP-Code:
if (is_int($anzahl[$i]) && is_int($artikelnummer[$i])) {
Hatte den Index vergessen.
Aber zu dem Ansatz mit dem einzigen Update anstatt 10, stehe ich wie der Ochs vorm Berg. Habe noch nicht mal eine Idee was du meinen könntest. Könntest du mir den Ausdruck mal hinschreiben, damit ich sehe was du meinst ? Wenn ich ein implode mache, kann ich doch nur update anwenden und nicht insert. ???? Hääää Hilfe.
__________________
Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
|

12-11-2004, 16:36
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
du sollst ja nicht alles auf einmal einfügen, sondern AUSLESEN
SELECT anzahl, artikelnummer
FROM tabelle
WHERE artikelnummer IN (1,2,3,4,5)
statt
SELECT anzahl FROM tabelle WHERE artikelnummer = 1
SELECT anzahl FROM tabelle WHERE artikelnummer = 2
SELECT anzahl FROM tabelle WHERE artikelnummer = 3
SELECT anzahl FROM tabelle WHERE artikelnummer = 4
SELECT anzahl FROM tabelle WHERE artikelnummer = 5
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

12-11-2004, 16:45
|
|
antman
Member
|
|
Registriert seit: Jun 2004
Beiträge: 451
|
|
OK, dann bekomme ich ein Array zurück mit Artikelnummern deren Anzahl zu aktualisieren sind. Was hilft mir das?
Bräuchte mal einen Flowchart zu deinem Gedankengang.
1) mit dem Implode das SELECT aufbauen
2) Array abholen
3) ???
4) ???
Wenn ich mich blöd gebe, tut mir das leid. Habe diese Woche jeden Tag 15 Stunden für eine Klausur gelernt. Mein Hirn ist Matsche.
__________________
Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Geändert von antman (12-11-2004 um 16:49 Uhr)
|

12-11-2004, 17:52
|
|
antman
Member
|
|
Registriert seit: Jun 2004
Beiträge: 451
|
|
Ergibt das Sinn ? Es werden die Artikel, DIE SCHON MAL AUSGEWÄHLT WURDEN, zur Aktualisierung der Anzahl aus der DB geholt. Und aktualisiert. Aber wie schreibe ich die nun zurück. Und was ist mit den Artikeln, die neu hinzukommen ?
Für das UPDATE muss aus dem $items Array nun wieder per explode ein durch Komma getrennter String gemacht werden. Nun brauche ich aber auch die die korrespondierenden indexnamen für die Spalten. Was nun ?
PHP-Code:
// update
$itemNumbers = implode(',', $artikelnummer);
$res =& $this->db->query("
SELECT artikelnummer, anzahl
FROM warenkorb
WHERE sid = '".$this->sid."'
AND artikelnummer
IN ($itemNumbers)
)";
$items =& $res->fetchRow(DB_FETCHMODE_ASSOC);
foreach($items AS $key => $value) {
$items[$key] = $artikelnummer[$key];
}
__________________
Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Geändert von antman (12-11-2004 um 18:02 Uhr)
|

15-11-2004, 10:55
|
|
antman
Member
|
|
Registriert seit: Jun 2004
Beiträge: 451
|
|
Wie nun die Artikel in die Datenbank einfügen die nicht aktualisiert wurden? Weiß nicht weiter.
__________________
Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
|

15-11-2004, 12:52
|
|
antman
Member
|
|
Registriert seit: Jun 2004
Beiträge: 451
|
|
[MySQL 4.0] Warenkorb aktualisieren.
Hallo Board,
An die Fuktion updateCard() werden zwei Arrays übergeben. Die Artikelnummern und die dazugehörigen Anzahlen. Die Funktion besteht aus 2 Teilen. Einem update Teil für die Artikel die bereits in der DB sind und deren Anzahl geändert wird und einem Teil der neue Artikel hinzufügt:
PHP-Code:
function updateCard($anzahl, $artikelnummer)
{
$i = 0;
foreach($artikelnummer as $key => $value) {
$in[$value] = $anzahl[$i++];
}
## update item counts
$itemNumbers = implode(',', $artikelnummer);
$res =& $this->db->query("
SELECT
artikelnummer, anzahl
FROM
warenkorb
WHERE
sid = '".$this->sid."'
AND
artikelnummer
IN
(".$itemNumbers.")
");
if($res->numRows() == 1) {
while($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$old[$row['artikelnummer']] = $row['anzahl'];
$res =& $this->db->query("
UPDATE
warenkorb
SET
anzahl = '".$in[$row['artikelnummer']]."'
WHERE
sid = '".$this->sid."'
AND
artikelnummer = '".$row['artikelnummer']."'
");
}
## add new items
}
$addthese = array_diff($in, $old);
foreach($addthese as $key => $value) {
$keys .= $key.', ';
$values .= $values.',';
}
$res =& $this->db->query("
INSERT INTO
warenkorb (sid, anzahl, artikelnummer)
VALUES
('".$this->sid."', '".$value."', '".$key."')
");
}
Das Problem ist, dass ich nicht weiß, wie man mehrere Werte gleichzeitig aktualisert. So wie es momentan ist, ergibt es keinen Sinn. Sitze nun fest. Wer könnte helfen ?
__________________
Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Geändert von antman (15-11-2004 um 14:29 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|