Aufgabe:  Eine Tabelle in der MySQL-Datenbank hat eine neue Spalte erhalten. Die vorhandenen Einträge müssen jetzt um die entsprechende Spalte ergänzt werden.

Quelltext mit Erklärung:

$db1 = mysql_query ("SELECT * FROM  `tabelle` ORDER BY  `neuespalte` ASC LIMIT 0 , 1");
$adb1 = mysql_fetch_assoc($db1);
$spalte = explode ("::", $adb1[Titel]);

Ich frage die Tabelle ab und sortiere die Abfrage nach der neuen Spalte. Durch ASC sind die Artikel oben, in denen die neue Spalte noch nicht befüllt sind. Da ich immer nur einen Artikel benötige, rufe ich auch nur eine Zeile ab. Nach dem der Inhalt der Abfrage in die Variable $adb1 übergeben wurde, wird diese Variabel mit explode aufgetrennt. In der Tabelle gibt es nämlich die Spalte Titel. Die Titel der jeweiligen Zeilen sind immer nach dem selben Schema aufgebaut. Der erste Bereich ist mit zwei Doppelpunkten vom zweiten Bereich getrennt. Der Bereich vor dem doppelten Doppelpunkt kommt in mehreren Spalten vor. In der Variable $spalte findet sich dann also ein Begriff der in der Tabelle öfter vorkommt und jeweils einen bestimmten Begriff entspricht der in der Spalte neuespalte eingetragen werden soll.

echo '<form action="" method="post">';
echo '<INPUT TYPE=RADIO NAME="neuespalte" VALUE="mobilfunk">Mobilfunk<INPUT TYPE=RADIO NAME="neuespalte" VALUE="entertain">Entertain<INPUT TYPE=RADIO NAME="neuespalte" VALUE="isp">ISP<INPUT TYPE=RADIO NAME="neuespalte" VALUE="homepage">Homepage';
echo '<input type="text" value="' . $spalte[0] . '" name="um">';
echo '</form>';
if (isset($_POST["um"]))
    {
    $search = $_POST["um"];
    $search .= '::';        
    $bereich = $_POST["bereich"];
    $db = mysql_query ("SELECT * FROM  `vsl_wsv` WHERE  `Titel` LIKE  '%$search%'");
    $num = mysql_num_rows ($db);
    echo $num;
    while ($adb = mysql_fetch_assoc($db))
        {
        $id = $adb[id];    
        mysql_query ("UPDATE  `vsl_wsv` SET  `bereich` =  '$bereich' WHERE `id` =  '$id';");
        }
    
    }

 

Könnte dich auch interessieren: