Problem mit Ausgabe.php

supser

Erfahrenes Mitglied
Hilfe MYSQL PHP Problem Formular Ausgabe.php

Hallo liebe Mitglieder erst mal finde ich die Seite super und sehr sehr informationsreich, ich habe es geschaft mit eurer Hilfe ein Formular zu basteln das 124 Datensätze in eine MYSQL Datenbank schreibt Vielen Dank dafür.
Folgendes Problem habe ich:
Eine Ausgabe.php die die ausgabe auch durchführt, aber ich möchte meine Abfrage wieder ins Formular Holen welches tnt.htm heisst von dem es auch gesendet wird.
sie sieht im moment so aus:
PHP:
<html>
<head>
<title>Inhalte ausgeben</title>
</head>
<body>

<?php

$host = "......";
$user = ".....";
$password = ".....";
$dbname = "......";
$tabelle ="tnt";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print ("$ausgabe[a1]<br>$ausgabe[a2]<br>$ausgabe[a3]<br>$ausgabe[a4]<br>$ausgabe[a5]<br>$ausgabe[a6]<br>$ausgabe[a7]<br>$ausgabe[a8]<br>$ausgabe[a9]<br>$ausgabe[a10]<br>$ausgabe[a11]<br>$ausgabe[a12]<br>$ausgabe[a13]<br>$ausgabe[a14]<br>$ausgabe[a15]<br>$ausgabe[a16]<br>$ausgabe[a17]<br>$ausgabe[a18]<br>$ausgabe[a19]<br>$ausgabe[a20]<br>$ausgabe[a21]<br>$ausgabe[a22]<br>$ausgabe[a23]<br>$ausgabe[a24]<br>$ausgabe[a25]<br>$ausgabe[a26]<br>$ausgabe[a27]<br>$ausgabe[a28]<br>$ausgabe[a29]<br>$ausgabe[a30]<br>$ausgabe[a31]<br>$ausgabe[a32]<br>$ausgabe[a33]<br>$ausgabe[a34]<br>$ausgabe[a35]<br>$ausgabe[a36]<br>$ausgabe[a37]<br>$ausgabe[a38]<br>$ausgabe[a39]<br>$ausgabe[a40]<br>$ausgabe[a41]<br>$ausgabe[a42]<br>$ausgabe[a43]<br>$ausgabe[a44]<br>$ausgabe[a45]<br>$ausgabe[a46]<br>$ausgabe[a47]<br>$ausgabe[a48]<br>$ausgabe[a49]<br>$ausgabe[a50]<br>$ausgabe[a51]<br>$ausgabe[a52]<br>$ausgabe[a53]<br>$ausgabe[a54]<br>$ausgabe[a55]<br>$ausgabe[a56]<br>$ausgabe[a57]<br>$ausgabe[a58]<br>$ausgabe[a59]<br>$ausgabe[a60]<br>$ausgabe[a61]<br>$ausgabe[a62]<br>$ausgabe[a63]<br>$ausgabe[a64]<br>$ausgabe[a65]<br>$ausgabe[a66]<br>$ausgabe[a67]<br>$ausgabe[a68]<br>$ausgabe[a69]<br>$ausgabe[a70]<br>$ausgabe[a71]<br>$ausgabe[a72]<br>$ausgabe[a73]<br>$ausgabe[a74]<br>$ausgabe[a75]<br>$ausgabe[a76]<br>$ausgabe[a77]<br>$ausgabe[a78]<br>$ausgabe[a79]<br>$ausgabe[a80]<br>$ausgabe[a81]<br>$ausgabe[a82]<br>$ausgabe[a83]<br>$ausgabe[a84]<br>$ausgabe[a85]<br>$ausgabe[a86]<br>$ausgabe[a87]<br>$ausgabe[a88]<br>$ausgabe[a89]<br>$ausgabe[a90]<br>$ausgabe[a91]<br>$ausgabe[a92]<br>$ausgabe[a93]<br>$ausgabe[a94]<br>$ausgabe[a95]<br>$ausgabe[a96]<br>$ausgabe[a97]<br>$ausgabe[a98]<br>$ausgabe[a99]<br>$ausgabe[a100]<br>$ausgabe[a101]<br>$ausgabe[a102]<br>$ausgabe[a103]<br>$ausgabe[a104]<br>$ausgabe[a105]<br>$ausgabe[a106]<br>$ausgabe[a107]<br>$ausgabe[a108]<br>$ausgabe[a109]<br>$ausgabe[a110]<br>$ausgabe[a111]<br>$ausgabe[a112]<br>$ausgabe[a113]<br>$ausgabe[a114]<br>$ausgabe[a115]<br>$ausgabe[a116]<br>$ausgabe[117]<br>$ausgabe[a118]<br>$ausgabe[a119]<br>$ausgabe[a120]<br>$ausgabe[a121]<br>$ausgabe[a122]<br>$ausgabe[a123]<br>$ausgabe[a124]<br>");
 }

mysql_close ($dbverbindung)


?>

wie gesagt es t soweit nur die abfarge soll er wieder in mein tnt.htm einsetzen, bin am ende und weiss nicht mehr was ich machen soll
Noch eine kleine Frage würde er dann immer wieder denn letzten gespeicherten Satz holen ?
Oder kann man auch ids abfragen oder irgenwie über update.php wie würde das aussehen ?

Im Voraus schon mal vielen Dank an alle euch im Forum, ohne euch wäre ich nie so weit gekommen Danke

Gruss Christian
 
Zuletzt bearbeitet:
Verstehe ich dich richtig, dass die Ausgabe statt an den Client zu schicken in einer Datei geschrieben werden soll?
 
.. denke ich nicht, print schreibt das ja auch in den out-stream ...

Nur was soll diese Angaben $ausgabe[a1] wobei ich hier das [a1] meine, entweder haste die als Konstante mit define() vereinbart - denke ich mal nicht - oder das ist per se schon ein Fehler - nimm nur 1 oder $a1 ...

Dann sollte zwar print("irgendwas $test und weiter") funktionieren, oder dass selbiges mit Feldern geht, hab ich noch nicht probiert. Schreib besser

PHP:
print ($ausgabe[a1] . "<br>" . $ausgabe[a2] . "<br>" . $ausgabe[a3] ......);

Okay, vielleicht hilft das ja

Dirk
 
Hallo, erst mal 1000 Dank für die schnelle Antwort, ich schreibs mal so:

Also habe ein html Formular das heisst tnt.htm mit 124 textboxen zur eingabe

ich gebe z.b. jetzt 20 felder ein und sende dies per work.php zur datenbank das geht auch und er schreibts rein.

Mein problem ich möchte z.b. an einem anderen Tag weiterschreiben in meinem Formular
Ich weiss jetzt nicht wie ich die geschrieben sätze wieder in mein formular hohlen kann um weiterzuschreiben.

Meine ausgabe.php zeigt mir zwar die geschrieben Daten jedoch nicht in meinem Formular wo ich sie gerne hin hätte zum weiterschreiben.

Meine Felder sind mit alle so <input name="Array[a1]" type="text" value="" size="70" row="5"> bis nr: 124

Vielen Dank im Voraus, wäre so sehr dankbar über eine Lösung mache schon 2 Wochen rum.

Es geht eigentlich nur drum die datensätze vom MYSQL wieder ins formular zu laden

Könnte es vielleicht sein das ich einen anderen Befehl brauch um die Daten wieder ins Formular zu laden ?

Grüsse Christian
 
Zuletzt bearbeitet:
Nur nen kleinen Vorschlag:

PHP:
<html>
<head>
<title>Inhalte ausgeben</title>
</head>
<body>

<?php

$host = "......";
$user = ".....";
$password = ".....";
$dbname = "......";
$tabelle ="tnt";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

while ($ausgabe = mysql_fetch_array ($result))
{
  foreach($ausgabe as $singleAusgabe) {
    print($singleAusgabe . '<br />');
  }
}

mysql_close ($dbverbindung)


?>

Anstat den Kilometerlangen print kannst du einen Loop über das $ausgabe Array machen und jedes Element ausgeben. Sieht doch schon besser aus.

Jetzt zu deinem Problem. Hier etwas Pseudecode. Hoffentlich kommst du damit weiter.

Dein Script wird folgendermassen aufgerufen: tnt.htm?showRecord=5

showRecord ist der Datensatz welcher du editieren möchtest.
PHP:
<?php

//Datenbanverbindung hier aufbauen.
$actualRecord = mysql_query('SELECT * from tnt WHERE id = ' . $_GET['showRecord']); //Lies den zu editierenden Datensatz aus der Tabelle.
$actualRecord = mysql_fetch_array ($actualRecord) //Fetche ihn so das du als Array drauf zugreifen kannst.

echo '<input name="Array[a1]" type="text" value="" size="70" row="5" value="' . $actualRecord['a1'] . '" />'; // Im parameter value kannst du angeben was standartmässig im Textfeld stehen soll. Dort füllst du jetzt eben die Daten aus dem zu editierenden Datensatz ein. .

?>

Hoffe du hast es verstanden.

MFG
X
 
PHP:
<?php
while ($ausgabe = mysql_fetch_array ($result))
 {
?>
     <input name="Array[a1]" type="text" value="<?= $ausgabe[a3] ?>" size="70" row="5">
<?php
 }
?>

.. probier mal das! - Wobei ich das mit dem [aXX] immer noch nicht verstehe ...

Dirk

@redx - warste schneller *gg*
 
Das value-Attribut ist zur Angabe eines Initialwerts. Du musst also einfach nur die existierenden Werte dort eintragen, etwa:
PHP:
foreach( $ausgabe as $name => $value ) {
	echo '<input type="text" name="'.$name.'" value="'.htmlspecialchars($value).'">';
}
 
Ich glaube, du hast ein noch grundsätzlicheres Problem ;) Eine Datei mit der Endung *.htm wird normalerweise nicht vom PHP-Interpreter durchlaufen, kann also nicht verarbeitet werden => Dateien mit PHP-Code immer mit der Endung *.php speichern!

Deine Art der Datenbankabfrage ist für mich auch neu, bzw. macht eigentlich nicht viel Sinn, wenn du nur mit einer Datenbank (in der ja mehrere Tabellen vorhanden sein können) arbeitest. Ich gehe jetzt auch einfach mal davon aus, dass die Zeilen in der Tabelle "tnt" die Namen "a1", "a2", ..., "an" haben. Wenn nicht, dann kann deine Ausgabe so gar nicht funktionieren. Hab gerade ein wenig Lust zu schreibseln, deswegen mal ein Code-Vorschlag von mir:
PHP:
    // Daten des Servers und der Datenbank
    $db_host = 'db_host';
    $db_user = 'db_user';
    $db_password = 'db_password';
    $db_name = 'db_name';

    // Verbindung aufbauen
    $mysql_connect = mysql_connect( $db_host , $db_user , $db_password );
                OR die( 'Konnte mysql_connect() nicht ausführen!' );

    // Datenbank auswählen
    $mysql_select_db = mysql_select_db( $db_name , $mysql_connect );
                OR die( 'Konnte die Datenbank ' . $db_name . ' nicht auswählen!' );

    /**
    * Wenn alles gut gegangen ist, besteht ab sofort eine offen Verbindung
    * zur Datenbank, die für Abfragen und andere Operationen genutzt 
    * werden kann.
    */

    // Mysql-Abfrage
    // Abfrage-Parameter setzen
    // Tabelle hat Spalten: id, name, title, text und date_add
    $query = "SELECT
                *
            FROM
                tnt
        ";

    /**
    * Ich habe mir die Abfrage mit * abgewöhnt und hole nur die 
    * Daten-Spalten aus der Datenbank, die ich auch wirklich brauche.
    * Bei kleineren Datensätzen macht das zwar kaum Unterschiede,
    * ist aus Performance-Gründen aber generell zu empfehlen.
    */
    // MySQL-Query ausführen
    $result = mysql_query( $query );

    /** 
    * Optional kann man bei mysql_query() noch den zweiten Parameter
    * für die Ressource-ID der Datenbankverbindung angeben. Da in diesem
    * Fall aber nur mit einer Datenbank gearbeitet wird, wählt die Funktion
    * die bestehende und offene Verbindung aus.
    */

    // Datensätze in numerischen Array ausgeben (numerische und assoziative Indizes)
    $array_num_result = mysql_fetch_array( $result );

    while( $ausgabe = $array_num_result )
    {
        echo 'ID: ' . $ausgabe[ 0 ] . '<br />';
        echo 'Name: ' . $ausgabe[ 1 ] . '<br />';
        echo 'Titel: ' . $ausgabe[ 2 ] . '<br />';
        echo 'Text: ' . $ausgabe[ 3 ] . '<br />';
        echo 'Datum Einstellung: ' . $ausgabe[ 4 ] . '<br />';
    }

    unset( $ausgabe ); // Variable leeren / löschen

    // Datensätze in assoziativem Array ausgeben
    // (das gleiche wie mysql_fetch_array( $query, MSQL_ASSOC );
    $array_assoc_result = mysql_fetch_assoc( $result );

    while( $ausgabe = $array_assoc_result )
    {
        echo 'ID: ' . $ausgabe[ 'id' ] . '<br />';
        echo 'Name: ' . $ausgabe[ 'name' ] . '<br />';
        echo 'Titel: ' . $ausgabe[ 'title' ] . '<br />';
        echo 'Text: ' . $ausgabe[ 'text' ] . '<br />';
        echo 'Datum Einstellung: ' . $ausgabe[ 'date_add' ] . '<br />';
    }

    // Datensätze als Objekt zurück geben
    $array_object_result = mysql_fetch_object( $result );

    while( $ausgabe = $array_object_result )
    {
        echo 'ID: ' . $ausgabe->id . '<br />';
        echo 'Name: ' . $ausgabe->name . '<br />';
        echo 'Titel: ' . $ausgabe->title . '<br />';
        echo 'Text: ' . $ausgabe->text . '<br />';
        echo 'Datum Einstellung: ' . $ausgabe->date_add . '<br />';
    }

    // MySQL-Verbindung schließen
    mysql_close( $mysql_connect );

Bei der Ausgabe musst du dich für eine Art entscheiden, außer natürlich du willst die Datensätze drei mal hintereinander ausgeben ;) Die Ausgabe für eine Zeile habe ich jetzt bewusst weggelassen. Im Prinzip ist es auch egal, für welche Art du dich entscheidest (numerisch, assoziativ oder als Objekt) ist egal, da alle gleich schnell sind.
 
Dein Vorschlag wird in eine Endlosschleife führen, falls nicht eine der MySQL-Fetch-Funktionen keinen Datensatz zurückgibt.
 
Hallo Danke für die Antworten ich habs wohl etwas komisch geschrieben.

Ich habe ein html formular das tnt heisst von da aus sende ich mit einer php die datensätze an Mysql Datenbank, wo sie auch drin stehen.

Wie hohle ich mir die Datensätze wieder aus der db zurück in mein html Formular, um sie z.b. wieder zu ändern direkt in meinem Formular. wenn ich mein formular leer aufrufe möchte ich mir den letzten geschrieben Datensatz aus der Tabelle in mein html Formular hohlen.

Vielen Dank für die gegeben Antworten
 
Zurück