# PHP: Auslesen einer ID aus Radiobutton und Nutzung in SQL



## rene_kochan (19. Dez 2008)

Hallo Leute!
Ich habe da mal ein Problem. Ich habe ein Formular erstellt, dass mir in einem Radio-Button-Feld eine ID speichert, die ich benötige, um mir einen bestimmten Datensatz anzeigen zu lassen. Das ganze habe ich freilich in PHP gelöst. Hier ist dazu mal der Ausschnitt aus dem Quellcode, der das Formular anzeigt. Dieses Formular ist eigentlich eine Tabelle, die alle Datensätze der DB anzeigt. Den Button zum Weitersenden habe ich mal weggelassen.

```
while($ar = mysql_fetch_array($res,MYSQL_ASSOC))
   {
       echo "<tr>";
       echo "<td><input type='radio' name='radio_auswahl' value='",$ar["id"],"'/>";
       // 1. Spalte Datum
       echo "<td>",$ar["system_timestamp"],"</td>";
       // 2. Spalte Name
       echo "<td>",$ar["rueckruf_name"],"</td>"; 
       // 3. Spalte Rückrufnummer
       echo "<td>",$ar["rueckruf_telefon"],"</td>"; 
       echo "</tr>";
}
```
Von diesem Formular aus wird es zur Ergebnisseite weitergesendet. Dort habe ich aber das Problem, dass die ID ja eine Zahl ist, ich aber bei $_POST["radio_auswahl"] nur einen String zurückbekomme, den ich also in der Where-Klausel nicht so ohne Weiteres verwenden kann. 
Mein Code sieht in der Ergebnisdatei folgendermaßen aus:

```
if (isset($radio_auswahl))
{
$sql = "SELECT * FROM new_telefon WHERE new_telefon.id =".$_POST["radio_auswahl"]." ORDER BY system_timestamp DESC";
   // Speichern der Abfrage in $res
   $res = mysql_query($sql);
   echo mysql_error();
   // Speichern des Datensatzes in das Array $datensatz
   while($datensatz = mysql_fetch_array($res,MYSQL_ASSOC))
   {
       echo "<form action ='ds_ergebnis.php' method ='POST'>";
       // Aufbau des Formulars zur Änderung des gewünschten Datensatzes
       echo "<table border='0'cellpadding='2' cellspacing='1' width='450' >";
       echo "<tr>";
       echo "<td>ID</td>";
       echo "<td><input type='text' name='id' value='",$datensatz["id"],"' readonly/></td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>Datum</td>";
       echo "<td>",$datensatz["system_timestamp"],"</td>";
       echo "</tr>";
       echo "<tr>";
       echo "<td>Rückrufnummer</td>";
       echo "<td><input type='text' name='nummer' tabindex='1' value='",$datensatz["rueckruf_telefon"],"'</td>";
       echo "</tr>";
       echo "<td>Name</td>";
       echo "<td><input type='text' name='name' tabindex='2' value='",$datensatz["rueckruf_name"],"'/></td>";
       echo "</tr>";
       echo "</table>";
       echo "<input type='hidden' name='original_id' value='",$_POST["radio_auswahl"]."'/>";     
       echo "</form>";
   }
// Ende if-Anweisung
}
```
Doch leider bringt er mir bei dieser Version schon in der SQL-Anweisung einen Fehler. 
Hier nochmal die SQL-Anweisung:

```
$sql = "SELECT * FROM new_telefon WHERE new_telefon.id =".$_POST["radio_auswahl"]." ORDER BY system_timestamp DESC";
```
Kann mir da jemand weiterhelfen?


----------



## thefish511 (19. Dez 2008)

> Doch leider bringt er mir bei dieser Version schon in der SQL-Anweisung einen Fehler.
> Hier nochmal die SQL-Anweisung:
> Code:
> 
> ...


Fehlermeldung und echo $sql hier posten.


```
if (isset($radio_auswahl))
{
$sql = "SELECT * FROM new_telefon WHERE new_telefon.id =".$_POST["radio_auswahl"]." ORDER BY system_timestamp DESC";
```
Erst $radio_auswahl schreiben und dann $_POST['radio_auswahl']? Ist der Variable $radio_auswahl nun $_POST['radio_auswahl'] zugewießen worden oder nicht? Wenn nein und das hier trotzdem funktioniert, dann solltest du dir unbedingt register globals anschauen.

Zu deinem Stil:
HTML-Attribute gehören in double Quotes. Außerdem heißt es in PHP $array['Stringindex']. 

```
echo "<td><input type='text' name='id' value='",$datensatz["id"],"' readonly/></td>"; 

// besser
echo '<td><input type="text" name="id" value="' . $datensatz['id'] . '" readonly /></td>';
```


----------



## rene_kochan (19. Dez 2008)

Hallo Leute!
Das Problem hat sich nun erledigt. Ich habe doch tatsächlich in meiner SQL-Abfrage die id vergessen, denn die brauche ich ja, auch wenn ich sie nicht ausgeben lasse.
Tschau!


----------

