Paul: Ausgabe funktioniert nicht mehr.

Hallo liebe SelfHTML Forum User,

ich habe mir ein PHP-Script gebastelt, welches Informationen aus einer Datenbank holt und im HTML Formular anzeigt. Damit er weiss welche Informationen dargestellt werden soll, übergebe ich eine array_id mit get.
Nur irgendwie funktioniert das nicht mehr.

Quelltext:

<html>
<head>
  <title>Besser Karstadt - Zeiterfassung</title>
  <link rel="stylesheet" href="css/styles.css" type="text/css">
  <link rel="SHORTCUT ICON" href="img/karstadt_logo.gif">
  <meta name="author" content="AG03_OSZIMT">
</head>

<body>

<div id="banner">
<img src="img/karstadt_logo.gif" alt="Karstadt-Logo">
</div>

<div id="navi">
<p><img src="img/verwaltung_logo.jpg" alt="" class="bildnavi"><a href="verwaltung.html">Verwaltung</a></p>
<p><img src="img/mitarbeiter_logo.jpg" alt="" class="bildnavi"><a href="mitarbeiter.html">Mitarbeiter</a></p>
</div>

<div id="inhalt">

<?php

$host     = "localhost";
$user     = "projektoszimt";
$password = "projektoszimt3";
$db       = "projektoszimt";
$table    = "T_Mitarbeiter";

$array_id = $_GET[array_id];

$dblink = @mysql_connect($host,$user,$password);
   if (!$dblink) die ("Verbindung zur Datenbank ist nicht möglich.".mysql_error());
   @mysql_select_db($db) or die ("Auswahl der DB '$db' nicht möglich.".mysql_error());

$abfrage = "SELECT * FROM T_Mitarbeiter WHERE Mitarbeiter_ID ='.$array_id.' LIMIT 0, 30 ";
   $ergebnis = mysql_query($abfrage,$dblink);
   $row = mysql_fetch_object($ergebnis);
   $name = $row->Name;
   $vorname = $row->Vorname;
   $teamnummer = $row->Teamnummer;
   $filiale = $row->Filiale;
   $sollstunden = $row->Sollstunden;

?>

<form action="mitarbeiter_edit_db.php" method="post">
Name:
<input name="NAME" value="<?php echo $row->Name ?>" size="" maxlength="" type="text"><br>

Vorname:
  <input name="VORNAME" value="<?php echo $vorname ?>" size="" maxlength="" type="text"><br>

Teamnummer:
  <input name="TEAMNUMMER" value="<?php echo $teamnummer ?>" size="" maxlength="" type="text"><br>

Filiale: <input name="FILIALE" value="<?php echo $filiale ?>" size="" maxlength="" type="text"><br>

Sollstunden:<input name="SOLLSTUNDEN" value="<?php echo $sollstunden ?>" size="" maxlength="" type="text"><br>

<br>

<input value="&Auml;nderungen eintragen" type="submit">
</form>

</div>

<div id="unten">
<img src="img/oszimt-logo.gif" alt=""> &copy;
FS491 - AG03
</div>

</body>
</html>

Hat einer ne Idee ?

  1. hallo Paul,

    Nur irgendwie funktioniert das nicht mehr.
    Hat einer ne Idee ?

    Ja. Wenn es "nicht mehr" funktioniert, braucht man nicht deinen ganzen schönen Quelltext, sondern die Fehlerausgabe, an der du bemerkt hast, daß da irgendwas nicht funktioniert. Wie lautet also diese Fehlermeldung?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Guten Morgen,

      ich danke euch für eure hilfreichen Tipps.
      Der Fehler lag an der SQl-Abfrage, da ich die Doppelten Hochkommas, mit den einfachen gemixt habe.

      DANKE.

  2. n'abend,

    Nur irgendwie funktioniert das nicht mehr.

    Informationen bzgl. was du geändert hast, dass es "irgendwie nicht mehr funktioniert" sind ab und an doch hilfreich.

    Hier mal ein paar Hinweise:

    <?php  
    /*  
     * an deiner Stelle würde ich umgehend meine MySQL-Zugangsdaten ändern  
     * und in Zukunft nicht mehr in irgendwelchen Foren veröffentlichen.  
     * Selbst wenn besagter Benutzer nur von localhost zugreifen kann,  
     * will man Informationen wie diese *nie* preisgeben.  
     */  
    $host     = "localhost";  
    $user     = "projektoszimt";  
    $password = "projektoszimt3";  
    $db       = "projektoszimt";  
    $table    = "T_Mitarbeiter";  
      
    /*  
     * ist array_id deiner Meinung nach eine Konstante? nein? Wieso behandelst  
     * du den String 'array_id' dann nicht als solchen?  
     */  
    $array_id = $_GET[array_id]; // falsch!  
    $array_id = $_GET['array_id']; // richtig!  
      
    /*  
     * $array_id ist eine zahl? dann möchtest du bitte sicherstellen, dass array_id auch tatsächlich eine Zahl ist:  
     * $array_id = intval( $array_id );  
     */  
      
    $dblink = @mysql_connect($host,$user,$password);  
    if (!$dblink) die ("Verbindung zur Datenbank ist nicht möglich.".mysql_error());  
    @mysql_select_db($db) or die ("Auswahl der DB '$db' nicht möglich.".mysql_error());  
      
    /*  
     * Um evtl. Sicherheitslücken vorzubeugen, solltest du sehr genau darauf  
     * achten, was du in deine Queries wirfst!  
     * ausserdem solltest du " und ' nicht durcheinander bringen! Diese Query wird _so_ jedenfalls nicht durch den SQL-Parser kommen.  
     */  
    $abfrage = "SELECT * FROM T_Mitarbeiter WHERE Mitarbeiter_ID ='.$array_id.' LIMIT 0, 30 ";  
      
    /*  
     * mysql_real_escape_string() nimmt dir das Prüfen der Inhalte von Variablen auf evtl. Manipulationsversuche ab.  
     * Auch Zahlen dürfen in MySQL-Queries in Anführungszeichen gesetzt werden (müssen es aber nicht!)  
     */  
    $abfrage = 'SELECT * FROM T_Mitarbeiter WHERE Mitarbeiter_ID =\''. mysql_real_escape_string($array_id) .'\' LIMIT 0, 30 ';  
      
    $ergebnis = mysql_query($abfrage,$dblink);  
    $row = mysql_fetch_object($ergebnis);  
      
    /*  
     * wozu machst du diese Zuweisungen, wenn du sie später gar nicht einsetzt?  
     */  
    $name = $row->Name;  
    $vorname = $row->Vorname;  
    $teamnummer = $row->Teamnummer;  
    $filiale = $row->Filiale;  
    $sollstunden = $row->Sollstunden;  
      
    ?>
    

    weiterhin schönen abend...

    --
    wer braucht schon großbuchstaben?
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|