Beliebig viele Boxen per Klick

Danielku15

Erfahrenes Mitglied
Hallo Leute.

Ich habe für unsere Klassenhomepage ein zusätzliches Script geschrieben sodass jeder eine Nickpage hat (so wie bei uboot). Dann hab ich es noch realisiert dass jeder User eigene Seiten gestalten kann. Dies geschiet mittels Boxen. Es gibt Boxen im Typ von Text, Bilder, Über Mich(mehrere Textfelder wo sie Informationen hineinschreiben können), Lieblingslinks, Absatz und Linie. Die Ausgabe funktioniert auch schon richtig. Nur sollte ich nun für die User die keinen Zugriff auf die Datenbank haben ein Formular haben mit welchem Sie beliebig viele Boxen und in den Boxen beliebig viele Felder einfügen können.
Hier ein Bild von uboot:
BILD

In der Box rechts kann der Typ definiert werden und dann kann eine entsprechende Box erstellt werden.

mfg daniel
 
PHP:
$moegliche_typen = Array('augenfarbe', 'körpergröße', 'hüftumfang', '...');
# Name der Variable erklärt alles

# in die DB eintragen
if(isset($_POST['wert'])) {
  $Text = "
  insert into 
    `tabelle` 
  (
    `id`, 
    `user_id`, 
    `type`, 
    `wert`
  ) values (
    '', 
    '".$user_id."', 
    '".$_POST['type']."', 
    '".$_POST['wert']."'
  )";
  mysql_Query($Text) or die(mysql_error());
}

# Formular halt
echo '<form action="whatever.php" method="post">
<select name="type">';
# Dropdown aus dem Array erzeugen
foreach($moegliche_typen as $id => $type) {
  echo '<option value="'.$id.'">'.$type.'</option>';
}
echo '</select>
<input type="text" name="wert" value=""/>
</form>';
Die Tabelle könnte etwa so aussehen:
Code:
CREATE TABLE `tabelle` (
`id` INT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`user_id` INT( 3 ) UNSIGNED NOT NULL ,
`type` INT( 2 ) NOT NULL ,
`wert` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
 
Hallo.

Das Problem liegt nicht daran die Boxen in die Datenbank einzutragen sondern die Boxen anzuzeigen und die danach einzutragen aber hab jetzt was gefunden:

Ich wollte zuerst die Boxen anzeigenlassen und dann alle Boxeninhalte eintragen lassen.

Nun versuche ich einfach zuerst per Klick die Boxen anzulegen und dann erst anzuzeigen und dann zu bearbeiten. Jetzt habe ich nur noch 1 Problem das "oberhalb", "unterhalb" anlegen oder das Verschieben der Boxen. Ich hab mir vorgestellt einfach eine zusätzliche Tabellenspalte anlegen (Name: Order). Nur ich kann doch nicht wenn ich eine neue Box oberhalb einer anderen anlege die ganzen Boxen die darunter sind mit dem Order um 1 erhöhen. Dann kommt eine Anzahl an Querys zusammen. Kann ich das Irgendwie umgehen?

mfg daniel
 
Code:
id | pos
34 | 01
02 | 02
15 | 03
05 | 04
21 | 05
Jetzt fügen wir etwas an Position 3 ein:
PHP:
$sql = "insert into `tab` (`pos`) values ('3')";
Jetzt sieht die Tabelle so aus:
Code:
id | pos
34 | 01
02 | 02
15 | 03
05 | 04
21 | 05
22 | 03
Sprich: Die 3 ist doppelt, also beheben wir das:
PHP:
$sql = "update `tab` set `pos`=`pos`+1 where `pos` >= '3' and `id` != '".mysql_insert_id()."'";
 
Zurück