Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Tabelle erweitern und andere Tabelle Hinzufügen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Tabelle erweitern und andere Tabelle Hinzufügen


 
moinmoin666
21-03-2007, 16:04 
 
Hi leute!

Ich habe so zwei Probleme:

1.)

Ich habe ein PM system, welches auf Folder basiert, ist ja auch nicht soo tragisch! Nur es ist eben so, das jeder USer einen eigenen Inbox, Outbox, Mod und System Ordner hat!

hier mal nen Bildlicher ausschnitt vom phpmyadmin:

http://wellblech-board.net/mother-brain/sql.JPG

Ich würde jetzt aber gerne jedem User per owner eine weitere Tabelle mit dem Namen: BLACKJACK geben!

Nur wie kann ich sowas machen?

Sowas wie

INSERT INTO `pmfolders` ( `id` , `parent` , `owner` ,
`name` , `sortfield` , `sortorder` , `prunedays` )
VALUES (
'1', '0', '547', '__blackjack', 'added', 'DESC', '0'
);
Hab ich schon raus, ich würde aber gerne für jeden Owner for each Owner so ungefähr ;-)

Ich weiß aber leider noch nicht wie das geht :dontknow:



2.)

Ich habe eine Tabelle pic_urls

wo 5 Felder für URLS drinn stehen, ich würde aber gerne eine weitere Tabelle einfügen

also pic_url5

Auch da weiß ich nicht wie das geht :(

wäre klasse wenn wer mir helfen könnte!!

mfg moinmoin666

 
ZombieChe
21-03-2007, 17:08 
 
zu 1)
Sofern du eine Tabelle mit allen Benutzern hast, lass die doch mit php alle durchlaufen und dann per insert mit der ownerid

zu 2)
MySQL Man: CREATE TABLE

 
moinmoin666
21-03-2007, 18:36 
 
1.)

Jaein, wäre nich das ding, nur ich kann kein mysql! deswegen wollte ich fragen wie der php befehl dafür wäre.

2.)

Bissel schlecht ausgedrückt! Sollte nur nen table erweiterung der Tabelle sein, keine ganz neue ;)

 
ZombieChe
21-03-2007, 19:08 
 
$sql = mysql_query("SELECT id FROM users") or die(mysql_error());
while ($result = mysql_fetch_row($sql)) {
$insert = "INSERT INTO `pmfolders` ( `id` , `parent` , `owner` ,
`name` , `sortfield` , `sortorder` , `prunedays` )
VALUES (
'1', '0', '".$result[0]."', '__blackjack', 'added', 'DESC', '0'
)";
mysql_query($insert) or die(mysql_error());
}


zu 2) Da du phpMyAdmin benutzt sollte das doch kein Problem darstellen oder?

Ansonsten:

CHANGE TABLE `pic_urls` ADD `pic_url5` VARCHAR(255)

1) funzt natürlich nur mit php. Ob das mit reinem mySQL auch lösbar ist, weiß ich grad nicht...

 
ghostgambler
21-03-2007, 20:29 
 
1) funzt natürlich nur mit php. Ob das mit reinem mySQL auch lösbar ist, weiß ich grad nicht...
INSERT INTO pmfolders (id, parent, owner, name, sortfield, sortorder, prunedays) SELECT '1', '0', id, '__blackjack', 'added', 'DESC', '0' FROM users
oder so

 
moinmoin666
21-03-2007, 21:49 
 
Nen dickes dankeschön @ZombieChe!

Das Prob:

Duplicate entry '1' for key 1

da mache diesen __blackjack schon haben (leider so um die 100 User, also alle die sich vor einer Woche angemeldet haben :( )

kann ich die ihrgedwie ausschließen, die das nicht haben?

Außerdem :(



Fehler

SQL-Befehl:
CHANGE TABLE `pic_url` ADD `pic_url5` VARCHAR( 255 )

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax
to use near 'TABLE `torrents` ADD `pic_url5` VARCHAR(255)' at line 1

 
ZombieChe
22-03-2007, 00:39 
 
whoops....hab mich in der Syntax geirrt (passiert mir irgendwie häufiger)...
Es muss natürlich 'ALTER TABLE' und nicht 'CHANGE TABLE' heißen *schande über mich*...

bei der INSERT Anweisung bin ich mir nicht sicher wie deine id Spalte angelegt ist. Sollte es einfach nur eine fortlaufende Nummerierung mit auto_increment sein (wie üblich) lass das Ändern der id Spalte einfach weg. Ansonsten musst du diese Spalte nochmal erklären...

 
ghostgambler
22-03-2007, 00:54 
 
Original geschrieben von ghostgambler
INSERT INTO pmfolders (id, parent, owner, name, sortfield, sortorder, prunedays) SELECT '1', '0', id, '__blackjack', 'added', 'DESC', '0' FROM users
oder so
INSERT INTO ... SELECT ... FROM users a LEFT JOIN pmfolders b ON a.id = b.owner WHERE b.owner IS NULL
falls das geht ^^,~

 
moinmoin666
24-03-2007, 14:06 
 
Nein eleider nicht :(

Fehler

SQL-Befehl: Dokumentation

INSERT INTO pmfolders( id, parent, owner, name, sortfield, sortorder,
prunedays )
SELECT '1', '0', id, '__blackjack', 'added', 'DESC', '0'
FROM users a
LEFT JOIN pmfolders b ON a.id = b.owner
WHERE b.owner IS NULL

MySQL meldet: Dokumentation
#1052 - Column 'id' in field list is ambiguous

kannste vllt damit was anfangen?

oder wenn ich
INSERT INTO pmfolders( id, parent, owner, name, sortfield, sortorder,
prunedays )
SELECT '1', '0', 'id', '__blackjack', 'added', 'DESC', '0'
FROM users a
LEFT JOIN pmfolders b ON a.id = b.owner
WHERE b.owner IS NULL

mache kommt wieder:

Duplicate entry '1' for key 1

:( es ist aber auch verhexxt!

 
ghostgambler
24-03-2007, 17:34 
 
a.id

 
moinmoin666
24-03-2007, 17:39 
 
sorry, das sagt mir grad garnicht :(

 
moinmoin666
27-03-2007, 18:13 
 
Ich weiß es ist immer doof zu betteln, aber ich bin echt verzweifelt,
habe schon bei über 50 Leute die Tabelle Per Hand erstellt :(
Und es will nicht auf hören!
Es wäre echt klasse, wenn wer mir sagen könnte

wie ich


INSERT INTO pmfolders( id, parent, owner, name, sortfield, sortorder,
prunedays )
SELECT '1', '0', 'id', '__blackjack', 'added', 'DESC', '0'
FROM users



Um Model, das er die doplleten überspringt, entstehen soll der __blackjack ordner für jede ID

:( ihrt seid doch meine letzte Hoffnung!

 
ghostgambler
27-03-2007, 20:23 
 
statt id a.id ... meine Güte, beschäftige dich doch einfach mal mit dem Thema...

 
moinmoin666
29-03-2007, 15:14 
 
Fehler

SQL-Befehl: Dokumentation

INSERT INTO pmfolders( id, parent, owner, name, sortfield, sortorder, prunedays )
SELECT '1', '0', a.id, '__blackjack', 'added', 'DESC', '0'
FROM users a
LEFT JOIN pmfolders b ON a.id = b.owner
WHERE b.owner IS NULL

MySQL meldet: Dokumentation
#1062 - Duplicate entry '1' for key 1

Ich glaub das geht einfach nicht..... aber naja... trotzdem danke für die Hilfe, ich glaube ich lasse es halt mit dem Ordner :(

 
ZombieChe
29-03-2007, 21:44 
 
Dabei gibt dir doch MySQL ne bombeklare Ansage...tztztz, lass doch die id Spalte einfach weg, falls sie auf auto_increment steht, oder mach halt das UNIQUE in phpmyadmin weg. Klarer gings doch echt nich...

 
ghostgambler
29-03-2007, 21:52 
 
Original geschrieben von ZombieChe
Dabei gibt dir doch MySQL ne bombeklare Ansage...tztztz, lass doch die id Spalte einfach weg, falls sie auf auto_increment steht, oder mach halt das UNIQUE in phpmyadmin weg. Klarer gings doch echt nich...
Womit man die Konsistenz der DB dann auch eigentlich gleich ganz vergessen kann...
Nicht der Index ist falsch sondern die Art des Einfügens, aber wenn sich der TO nicht mit dem Thema auseinander setzen will kann man da auch nix dran ändern ~.~

 
moinmoin666
03-04-2007, 20:13 
 
ICh kenne mich doch nicht aus, und weiß nicht wie mysql reagiert ;(

aber hiermit hat es wohl geklappt!

Eingefügte Zeilen: 850
Letzte automatisch eingefügte ID: 36529 (die Abfrage dauerte 36.9965 sek)
SQL-Befehl: INSERT INTO pmfolders( parent, owner, name, sortfield, sortorder, prunedays )
SELECT '0', a.id, '__blackjack', 'added', 'DESC', '0'
FROM users a
LEFT JOIN pmfolders b ON a.id = b.owner
WHERE b.owner IS NULL

ICH DANKE EUCH ALLEN!!!


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:59 Uhr.