SQL Tabelleninhalt in anderer Tabelle speichern und anzeigen

Raggazzi

Grünschnabel
Hallo zusammen,

ich weis nicht wo ich mit den Fragen anfangen soll!

Ich möchte eine Select-Box mit Auswahl in meine php-Seite einfügen. Die soll die Angaben von der Tabelle "db1" bekommen. In der "db1" habe ich zwei Felder "db1_id" und "db1_art". Anzeigen sollte es mir nur den Wert "db1_art" und nicht "db1_id"

Code:
<?php
error_reporting(E_ALL);
$sql = ("select db1_id, db1_artfrom db1");
$query = mysql_query($sql);
?>

<select name="select">
  <?php
  while($liste = mysql_fetch_array($query))
  {
  ?>
  <option value="<?=$liste['db1_id'] ?>"><?=$liste['db1_id'] ?></option>
  <?php
  }
  ?>
</select>

Bei Auswahl sollte es mir, in eine andere Tabelle "db2" den Wert von "db1_id" in die Tabelle schreiben.

Dies ist die Funktion, mit der ich das ganze speichern möchte:
Code:
   global $database;
   $row = ($database);
   $row->bind($_POST);
   $row->store();
   
   
   //Einsatzid ermitteln wenn Einsatz bearbeitet wird
   $esz_id=$row->db2_id;
   
   $db2_id = $_POST['$database'];
   //echo var_dump($db2_id);
   $database->setQuery( "DELETE FROM db1 WHERE db1_id = ".$db2_id);
   $database->query();
   for ($i=0, $n=count($db2_id ); $i < $n; $i++) {
   		$database->setQuery( "INSERT INTO db2 (db2_id) VALUES (".$db2_id[$i].",".$db2_id.") ");
      $database->query(); 
   }

und diese, wenn ich etwas Editieren möchte:

Code:
    global $database;
   $row = new mos_db2_id($database);
   $row->load($uid);
	 
   $query = "SELECT * FROM #__db2 "
                       ." ORDER BY db2__id "
                       ;
	 $database->setQuery( $query );
	 if ( !$database->query() ) {
       echo "<script type='text/javascript'> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
	 } 
   $einsatzart_id = $database->loadObjectList();

  1. Wie muss ich jetzt meine Select-Box erstellen?
  2. Stimmen meine Funktionen?

Bedanke mich für Eure hilfen!

gruss Raggazzi
 
Zuletzt bearbeitet:
Bin zwar nicht ganz mitgekommen was Du genau möchtest, aber ich versuch mal zu helfen. Komme auch mit deinem Code nicht wirklich klar :-)

Wenn du in dem Select die ID übergeben möchtest, dann kommt sie als value rein und damit die db1_art angezeigt wird muss sie ziwschen <option value....>db1_art</option>.
Dann wird die ID übergeben aber der String angezeigt.

PHP:
<?
error_reporting(E_ALL);
$sql = "select db1_id, db1_artfrom db1";
$query = mysql_query($sql);
?>

<select name="select">
  <?php
  while($liste = mysql_fetch_array($query))
  {
  ?>
  <option value="<? echo $liste['db1_id']; ?>"><? echo $liste['db1_art'] ?></option>
  <?php
  }
  ?>
</select>


Hier übergibst Du $_POST[$database] was ich nicht nachvollziehen kann. ich denke mal du möchtest die ID von dem Select-Feld hier in der Var haben.
Übergeben wird von einem Select-Feld immer das value, falls angegbeen, ansosnten der Wert was zwischen <option>...</option> steht. In Deinem Fall hast du das Value angegeben und übergibst das als Post-Var den namen des Select Feldes, in Deinem Fall "select".

PHP:
global $database;
   $row = ($database);
   $row->bind($_POST);
   $row->store();
   
   
   //Einsatzid ermitteln wenn Einsatz bearbeitet wird
   $esz_id=$row->db2_id;
   
   $db2_id = $_POST['select'];
   //echo var_dump($db2_id);
   $database->setQuery( "DELETE FROM db1 WHERE db1_id = ".$db2_id);
   $database->query();
   for ($i=0, $n=count($db2_id ); $i < $n; $i++) {
   		$database->setQuery( "INSERT INTO db2 (db2_id) VALUES (".$db2_id[$i].",".$db2_id.") ");
      $database->query(); 
   }

Wird die Selectbox überhaupt abgeschickt? Sehe hier kein Form-tag.
 
Zurück