Daten auslesen

counteract

Erfahrenes Mitglied
Hallo!

Ich habe folgendes Problem:

Ich möchte Daten aus der DB auslesen, dafür habe ich vorher mir eine Liste erstellen lassen, die mich zu den gewünschten Formular führt.

Nun tüftle ich die ganze Zeit herrum dass meine Daten auch richtig ausgelesen werden, jedoch nur mit mäßigen Ergebniss:

Soweit bin ich gekommen:

PHP:
<?
// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank"); 
}  
$sql = "SELECT pname, pbeginn FROM projekt_gep WHERE user_id = " . $_POST['user_id'];
 
echo '<input type="text" name="pname" value="'.$sql['pname'].'"><br />';
?>

Als Wert erhalte ich aber nur ein S! Und dieser stimmt nicht.

Was mache ich denn nur falsch?

MfG

Counteract
 
Meinst du das so?

PHP:
<?
// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank"); 
}  

  $sql = "SELECT * FROM `projekt_gep` WHERE `user_id` = '$row[user_id]'";  
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);

  echo '<input type="hidden" name="user_id" value="'.$row['user_id'].'"><br />';
?>

So habe ich es auch schon ausprobiert, jedoch werden dabei keine daten in das Formular geladen! Es passiert einfach nichts! Was mache ich denn da falsch
 
Wo soll denn auch bei der Query schon $row bekannt sein? Dort musst Du schon weiterhin Deinen Uebergabewert, natuerlich nach eingehender Pruefung, drin lassen.
 
Hier mal ein Beispiel, hierbei sollen entweder eine Tabelle mit Links zu User-Details oder eben die Details des gewaehlten Users angezeigt werden. Ich beschraenke mich aber hier mal auf das Wesentliche da der Code ansonsten unnoetig aufgeblasen wuerde.
PHP:
if (!empty($_GET['userid']))
{
 if (is_numeric($_GET['userid']))
 {
  $users=mysql_query("select * from `users` where `id`='".$_GET['userid']."'");
  $user=mysql_fetch_assoc($users);
  //Userdetails ausgeben
 }
 else
 {
  echo 'Error';
 }
}
else
{
 $users=mysql_query("select * from `users` order by `id`");
 while ($user=mysql_fetch_assoc($users))
 {
  //Usernamen und Links zu den Details ausgeben
 }
}
Wenn Uebergabewerte auch alphanumerisch sein koennen, also nicht nur reine Zahlenwerte sollte zusaetzlich auch noch escaped werden um SQL-Injections zu vermeiden. Dabei ist aber noch zu beachten dass je nach Einstellung bereits die sogenannten Magic Quotes hinzugefuegt wurden, also ein automatisches Escaping.
 
Mhm ich glaube du verstehst nicht so ganz was ich für ein problem habe.

Das auflisten der Daten funktioniert bereits. Es sollen jetzt nur noch die Daten die man aus der Tabelle ausgewählt hat in das Formular übergeben werden.

Hier der Code zum Auflisten:

PHP:
<? 
// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank"); 
}
if(!isset($_GET['id']))
{  
    $sql = "SELECT 
                    `user_id`,
                    `pname` 
            FROM 
                    `projekt_gep`
            WHERE 
                    `user_id` = '".$_SESSION['session_user_id']."' 
           ";

    $result = mysql_query($sql) or die(mysql_error());

    while($row = mysql_fetch_assoc($result)) 
    {
        echo '<pre>';
        echo '<a href="./bearbeitung_bestehendes_projekt.php?id='.$row['projekt_id'].'">'.$row['pname'].'</a>';
        echo '</pre>';
    }
}
else
{
    $sql = "SELECT 
                     `pname` 
            FROM
                     `projekt_gep` 
            WHERE 
                     `projekt_id` = '".intval($_GET['id'])."' 
            AND 
                     `user_id` = '".$_SESSION['session_user_id']."' 
            LIMIT 
                     1
           ";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_array($result);
}
?>

Aber trotzdem DANKE!
 
Geht doch im Grunde genauso.
Ich verzichte jetzt der Faulheit halber mal auf Checks. Diesmal ein Formular um den Usernamen des gewaehlten Users zu aendern.
PHP:
$users=mysql_query("select * from `users` where `id`='".$_GET['userid']."'");
$user=mysql_fetch_assoc($users);
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<input type="text" name="username" value="'.$user['username'].'">';
echo '<input type="hidden" name="userid" value="'.$user['id'].'">';
echo '<input type="submit" name="update" value="Update">';
 
Zurück