PHP mehrere Werte gleichzeitig schreiben....
PHP mehrere Werte gleichzeitig schreiben....
Hei,
Ich habe mit folgenden Code mehrere Werte ausgelesen:
<?
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = '$PHP_AUTH_USER' order by number");
while ($werte = db_fetch_array($id)) {
$account = $werte["account"];
}
?>
Jetzt möchte ich folgenden Code so ändern, das er immer wieder in die Datenbank schreibt, wobei der Wert $username immer mit dem nächsten Wert aus $account geschrieben wird.
$cmd = "insert into userpref " . "(preference, value, username) values ( ".
"'$preference', '$address', '$username')";
$result= mysql_query($cmd);
(Also 1. Wert $username=1
2. Wert $username gleich=2 usw. wobei die Anzahl der Werte nicht fest ist)
Wie kann ich das bewerkstelligen.
Danke im vorraus.
mfg
Björn
Ich habe mit folgenden Code mehrere Werte ausgelesen:
<?
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = '$PHP_AUTH_USER' order by number");
while ($werte = db_fetch_array($id)) {
$account = $werte["account"];
}
?>
Jetzt möchte ich folgenden Code so ändern, das er immer wieder in die Datenbank schreibt, wobei der Wert $username immer mit dem nächsten Wert aus $account geschrieben wird.
$cmd = "insert into userpref " . "(preference, value, username) values ( ".
"'$preference', '$address', '$username')";
$result= mysql_query($cmd);
(Also 1. Wert $username=1
2. Wert $username gleich=2 usw. wobei die Anzahl der Werte nicht fest ist)
Wie kann ich das bewerkstelligen.
Danke im vorraus.
mfg
Björn
Re: PHP mehrere Werte gleichzeitig schreiben....
Okay,.. ich habs jetzt dreimal durchgelesen,.. und sogar länger drüber überlegt .. ;) aber erklärs mir bitte nochmal :)
Re: PHP mehrere Werte gleichzeitig schreiben....
Hei,
ähm, okay jetzt wo ich mir das selbst durchlese.....ich versuche es mal in einfachen Worten.
Ich baue gerade für Confixx eine Erweiterung um Spamassassin zu steuern. Als Basis habe ich das PHP-SA Skript von spamassassin.org benutzt.
Jetzt kann ich ja mit folgendem Code die Pop3 Postfächer des eingeloggten Users auslesen.
<?
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = '$PHP_AUTH_USER' order by number");
while ($werte = db_fetch_array($id)) {
$account = $werte["account"];
}
?>
Wenn der User jetzt einen Wert im WebInterface ändert, möchte ich mit
$cmd = "insert into userpref " . "(preference, value, username) values ( ".
"'$preference', '$address', '$username')";
$result= mysql_query($cmd);
den Wert mit dem dazugehörigen Pop3 Postfach in die Datenbank schreiben. Wenn ein User jedoch mehrere Postfächer hat (web1p1, web1p2 usw.) soll er den Insert Befehl mehrmals absenden, wobei die Variable $username jeweils mit dem nächsten POP3 Postfach gefüllt wird, sodass die Einstellungen immer für alle POP3 Postfächer des jeweiligen Confixx Benutzer gelten.
Wie läßt sich das am besten machen?
So, ich hoffe ich konnte mich jetzt verständlich ausdrücken ;-)
mfg
Björn
ähm, okay jetzt wo ich mir das selbst durchlese.....ich versuche es mal in einfachen Worten.
Ich baue gerade für Confixx eine Erweiterung um Spamassassin zu steuern. Als Basis habe ich das PHP-SA Skript von spamassassin.org benutzt.
Jetzt kann ich ja mit folgendem Code die Pop3 Postfächer des eingeloggten Users auslesen.
<?
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = '$PHP_AUTH_USER' order by number");
while ($werte = db_fetch_array($id)) {
$account = $werte["account"];
}
?>
Wenn der User jetzt einen Wert im WebInterface ändert, möchte ich mit
$cmd = "insert into userpref " . "(preference, value, username) values ( ".
"'$preference', '$address', '$username')";
$result= mysql_query($cmd);
den Wert mit dem dazugehörigen Pop3 Postfach in die Datenbank schreiben. Wenn ein User jedoch mehrere Postfächer hat (web1p1, web1p2 usw.) soll er den Insert Befehl mehrmals absenden, wobei die Variable $username jeweils mit dem nächsten POP3 Postfach gefüllt wird, sodass die Einstellungen immer für alle POP3 Postfächer des jeweiligen Confixx Benutzer gelten.
Wie läßt sich das am besten machen?
So, ich hoffe ich konnte mich jetzt verständlich ausdrücken ;-)
mfg
Björn
-
deanwickert
- Posts: 77
- Joined: 2003-05-13 23:20
- Location: Lahnstein
- Contact:
Re: PHP mehrere Werte gleichzeitig schreiben....
also ich weiß nicht. irgendwie kommt mir das ganze spanisch vor.
Wenn ich das ganze richtig verstehe stehen die postfachnamen in einem array. also kannst du da ganz doch in eine schleife einbetten.
entweder mit ner for-Schleife
oder mit ner while-schleife
Ich hoffe, dass es hilft. war irgendwie zu einfach.
Wenn ich das ganze richtig verstehe stehen die postfachnamen in einem array. also kannst du da ganz doch in eine schleife einbetten.
entweder mit ner for-Schleife
Code: Select all
for ($n=0; $n<count($array); $n++) {
}Code: Select all
while ($variable = $array[$n]) {
$n++;
}Re: PHP mehrere Werte gleichzeitig schreiben....
Was für einen Wert nimmt denn $account an? Ich gehe Mal davon aus, dass das der Name des Postfaches ist, also web1p1, web1p2 und du aber nur die letzte Zahl haben möchtest (oder sehe ich das jetzt auch falsch)??bfal wrote:Code: Select all
$account = $werte["account"];
Re: PHP mehrere Werte gleichzeitig schreiben....
Also ich möchte nur die Potfächer eines User auslesen (User: web1), und diese beim schreiben von Daten in die Mysql Datenbank berücksichtigen, sodas pro Postfach ein "INSERT" erzeugt wird.
Inzwischen habe ich mein Problem erkannt. Array heißt das Stichwort (Thx, @deanwickert).
Also kann ich die Werte aus "select account from pop3 where kunde = '$PHP_AUTH_USER' order by number" in ein Array schreiben?
Ich denke das würde mir schon helfen.
Danke im vorraus..
Björn
Inzwischen habe ich mein Problem erkannt. Array heißt das Stichwort (Thx, @deanwickert).
Also kann ich die Werte aus "select account from pop3 where kunde = '$PHP_AUTH_USER' order by number" in ein Array schreiben?
Ich denke das würde mir schon helfen.
Danke im vorraus..
Björn
Re: PHP mehrere Werte gleichzeitig schreiben....
Klar, wieso nicht...bfal wrote:Also kann ich die Werte aus "select account from pop3 where kunde = '$PHP_AUTH_USER' order by number" in ein Array schreiben?
...versuchs mal hiermit:
Code: Select all
<?php
$account = array();
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = ".$PHP_AUTH_USER." order by number");
while ($werte = db_fetch_array($id))
{
$account[count ($account)] = $werte["account"];
}
?>
Code: Select all
<?php
$account = array();
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = ".$PHP_AUTH_USER." order by number");
while ($werte = db_fetch_array($id))
{
$cmd = "insert into userpref (preference, value, username) values (".$preference.", ".$address.", ".$werte["account"].")";
$result= mysql_query($cmd);
}
?>
...Das mag zwar jetzt nicht besonders viel sein, aber wenn du 1000 solche Scripte auf deinem Server hast, dann kann es schon einen Unterschied machen.
Re: PHP mehrere Werte gleichzeitig schreiben....
@kahler:
Warum einfach wenn es auch umständlich geht ;-)
Danke für den Tipp, werde ich mal probieren.
mfg
Björn
Warum einfach wenn es auch umständlich geht ;-)
Danke für den Tipp, werde ich mal probieren.
mfg
Björn
Re: PHP mehrere Werte gleichzeitig schreiben....
Hei,
ich habe da noch ein Problem, wo ich einfach nicht auf die Lösung komme:
Folgender Code:
$account = array();
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = '$PHP_AUTH_USER' order by number");
while ($pop3konten = db_fetch_array($id))
{
// update users's rewrite_subject
if(!$rewrite_subject) { $rewrite_subject = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'rewrite_subject'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'rewrite_subject', '$rewrite_subject')";
$result = mysql_query($cmd);
// update users's report_header
if(!$report_header) { $report_header = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'report_header'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'report_header', '$report_header')";
$result = mysql_query($cmd);
// update users's defang_mime
if(!$defang_mime) { $defang_mime = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'defang_mime'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'defang_mime', '$defang_mime')";
$result = mysql_query($cmd);
// update user's use_terse_report
if(!$use_terse_report) { $use_terse_report = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'use_terse_report'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'use_terse_report', '$use_terse_report')";
$result = mysql_query($cmd);
// update users's required_hits
if(!$required_hits) { $required_hits = 5; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'required_hits'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'required_hits', '$required_hits')";
$result = mysql_query($cmd);
}
Das Problem ist, das er für $pop3konten[account] immer ARRAY einträgt, anstatt die Werte web1p1, web1p2 usw.
Wo ist da mein Fehler?
Danke im vorraus...
mfg
Björn
ich habe da noch ein Problem, wo ich einfach nicht auf die Lösung komme:
Folgender Code:
$account = array();
db_connect($db_host, $db_user, $db_pass);
$id = db_query("select account from pop3 where kunde = '$PHP_AUTH_USER' order by number");
while ($pop3konten = db_fetch_array($id))
{
// update users's rewrite_subject
if(!$rewrite_subject) { $rewrite_subject = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'rewrite_subject'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'rewrite_subject', '$rewrite_subject')";
$result = mysql_query($cmd);
// update users's report_header
if(!$report_header) { $report_header = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'report_header'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'report_header', '$report_header')";
$result = mysql_query($cmd);
// update users's defang_mime
if(!$defang_mime) { $defang_mime = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'defang_mime'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'defang_mime', '$defang_mime')";
$result = mysql_query($cmd);
// update user's use_terse_report
if(!$use_terse_report) { $use_terse_report = 0; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'use_terse_report'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'use_terse_report', '$use_terse_report')";
$result = mysql_query($cmd);
// update users's required_hits
if(!$required_hits) { $required_hits = 5; }
$cmd = "delete from userpref where username = '$pop3konten[account]' " .
"AND preference = 'required_hits'";
$result = mysql_query($cmd);
$cmd = "insert into userpref (username, preference, value) " .
"VALUES ('$pop3konten[account]', 'required_hits', '$required_hits')";
$result = mysql_query($cmd);
}
Das Problem ist, das er für $pop3konten[account] immer ARRAY einträgt, anstatt die Werte web1p1, web1p2 usw.
Wo ist da mein Fehler?
Danke im vorraus...
mfg
Björn
-
outofbound
- Posts: 470
- Joined: 2002-05-14 13:02
- Location: Karlsruhe City
Re: PHP mehrere Werte gleichzeitig schreiben....
Hi,
vorab: Ich will dich nicht beleidigen, aber bitte schreib deinen
Code etwas übersichtlicher (Einrücken z.B)... ist ja ein Krampf,
das so zu debuggen ;)
$pop3konten ist ein array (Nicht Assoziativ, sonst wäre es
db_fetch_assoc in der Schleife)...
Somit ist $pop3konten[account] = $pop3account[0], es sei
denn du hast "account" als Constante definiert... ;)
Ich gehe einfach mal davon aus, dass es funzt, wenn du
a) while ($pop3konten = db_fetch_assoc($id))
und dann noch $pop3konten["account"] verwendest ;)
Gruss,
Out
vorab: Ich will dich nicht beleidigen, aber bitte schreib deinen
Code etwas übersichtlicher (Einrücken z.B)... ist ja ein Krampf,
das so zu debuggen ;)
$pop3konten ist ein array (Nicht Assoziativ, sonst wäre es
db_fetch_assoc in der Schleife)...
Somit ist $pop3konten[account] = $pop3account[0], es sei
denn du hast "account" als Constante definiert... ;)
Ich gehe einfach mal davon aus, dass es funzt, wenn du
a) while ($pop3konten = db_fetch_assoc($id))
und dann noch $pop3konten["account"] verwendest ;)
Gruss,
Out
Re: PHP mehrere Werte gleichzeitig schreiben....
Hei OutOfBound,
Im Quellcode ist es etwas übersichtlicher ;-)
ich habe den Code mal nach deinen Angaben geändert Jetzt kommt aber folgende Fehlermeldung Call to undefined function: db_fetch_assoc() in /xxxx/xxx/xxx/spamassassin.php
Was soll mir das sagen? Muß ich die Funktion noch irgendwo definieren?
mfg
Björn
Im Quellcode ist es etwas übersichtlicher ;-)
ich habe den Code mal nach deinen Angaben geändert Jetzt kommt aber folgende Fehlermeldung Call to undefined function: db_fetch_assoc() in /xxxx/xxx/xxx/spamassassin.php
Was soll mir das sagen? Muß ich die Funktion noch irgendwo definieren?
mfg
Björn
-
outofbound
- Posts: 470
- Joined: 2002-05-14 13:02
- Location: Karlsruhe City
Re: PHP mehrere Werte gleichzeitig schreiben....
Oh, verzeih mir...
bei dir heisst die Funktion wohl mysql_fetch_assoc() ;(
Das ist eine Std- Funktion von PHP... geg. falls einfach
schnell auf php.net nachschauen ;)
DB- Abstraktionen sind was tolles, aber man gewöhnt sich
so schnell dran... ;)
Gruss,
Out
bei dir heisst die Funktion wohl mysql_fetch_assoc() ;(
Das ist eine Std- Funktion von PHP... geg. falls einfach
schnell auf php.net nachschauen ;)
DB- Abstraktionen sind was tolles, aber man gewöhnt sich
so schnell dran... ;)
Gruss,
Out
Re: PHP mehrere Werte gleichzeitig schreiben....
Supi,
es funzt :-D
Jetzt macht er das was ich will. Vielen Dank.
Gruß
Björn
es funzt :-D
Jetzt macht er das was ich will. Vielen Dank.
Gruß
Björn
Re: PHP mehrere Werte gleichzeitig schreiben....
Ich hätte interesse an dieser erweiterung für Confixx. Gibst Du das raus wenn es fertig ist? Bitte bitte :)
Re: PHP mehrere Werte gleichzeitig schreiben....
Noch funktioniert nicht alles.
Aber sobald die erste Version fertig ist, veröffentliche ich es hier.
Gruß
Björn
Aber sobald die erste Version fertig ist, veröffentliche ich es hier.
Gruß
Björn