Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Daten aus einer Tabelle mit Form Select weiter geben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Daten aus einer Tabelle mit Form Select weiter geben

    Hi,
    sorry für den langen titel, aber wusste nicht wie ichs anders beschreiben kann.
    Mein Problem sieht folgendermaßen aus. Ich möchte aus einer MySQL Tabelle nur eine spalte auslesen und diese dann in einem Formular mit Hilfe von "<select><option>" anzeigen lassen. Mit einem Submit möchte ich dann den ausgewählten namen (und weitere neue Infos) in eine neue Tabelle schreiben.
    Mein problem ist jetzt, dass ich zwar schön die namen in meinem select-Feld hab, aber sobald ich das Formular abschicken wird immer derselbe Name in die neue Tabelle eingetragen. Jetzt weiß ich leider nicht wie ich das lösen kann. Hier noch der Scriptteil:

    PHP-Code:
    <?php

    //Connect-Datei
    require('connect.php');

    //Auslesen der DB Einträge
    $sql="SELECT * FROM clubs";
    $result=mysql_query($sql$link);

    //Anfang d. Formulars
    echo "<form action='$PHP_SELF' method='post'>";
    echo 
    "<input type='hidden' name='sent' value='1'>";
    echo 
    "<select name='$club'>";
    for(
    $i;$i<mysql_num_rows($result);$i++)
    {
        
    $IDs=mysql_result($result$i'ID');
        
    $clubs=mysql_result($result,$i'club');
        
    #echo "$clubs<br>";
        
    echo "<option>$clubs</option>";
    }
    echo 
    "</select>";
    echo 
    "<input type=submit>";
    echo 
    "</form>";

    //Anfang if($sent==1)
    if($sent==1)
    {
        
    $sql="INSERT INTO events (club) values ('$clubs')";
        
    mysql_query($sql$link);
        echo 
    "$sql";
    }
    ?>
    Danke schon mal im vorraus.
    P.S.: Wenn ich das Formular ohne vorheriges Auslesen der Namen, also die Auswahloptionen per Hand eintrag, funktioniert es.

  • ch4in
    antwortet
    Hi, habs nun endlich dank eurer Hilfe geschafft. Ob der code so perfekt ist, weiß ich nicht, bin ja schließlich noch nicht solange dabei. Könnt ja noch mal drüber schauen und evtl. verbesserungsvorschläge posten.

    PHP-Code:
    <?php
    require('connect.php');

    $table='clubs';
    $field='club';
    $query='SELECT '.$field.' FROM '.$table;
    $result=mysql_query($query,$link) or die (mysql_error());

    echo 
    '<center>';
    echo 
    '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    echo 
    'Neues Event eintragen';
    echo 
    '<table width="400" border="1"><tr><td>Club: </td><td>';
    echo 
    '<select name="club">';
    for(
    $i=0;$i<mysql_num_rows($result);$i++)
    {
        
    $club=mysql_result($result,$i'club');
        echo 
    '<option>';
        echo 
    $club;
    }
    echo 
    '</td></tr><tr><td>';
    echo 
    'Datum: </td><td>';
    echo 
    '<input type="text" name="datum"></td></tr><tr><td>';
    echo 
    'Uhrzeit: </td><td>';
    echo 
    '<input type="text" name="zeit"></td></tr><tr><td valign=top>';
    echo 
    'Beschreibung: </td><td>';
    echo 
    '<textarea name="beschreibung" cols="34" rows="5"></textarea></td></tr><tr><td>&nbsp;</td><td>';
    echo 
    '<input type=submit></td></tr></table>';
    if(
    $_POST)
    {
        
    $query='INSERT INTO events (club, datum, zeit, beschreibung) VALUE ("'.$_POST['club'].'", "'.$_POST['datum'].'","'.$_POST['zeit'].'", "'.$_POST['beschreibung'].'")';
        
        
    $message='Das Event für ';
        
    $message.=$_POST['club'];
        
    $message.=' wurde eingetragen.';
        
    $result=mysql_query($query,$link) or die(mysql_error());
        echo 
    $message;
    }
    ?>
    MfG Chris

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Tja.... was soll man sagen...?

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Pflichtbewußt die Originalreferenz zitiert und Zweitquellen als Hörensagen hinterfragt. Respekt!

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Ich war schneller!
    Nachtrag:
    Zitat von HTML 4.01 Specification
    value = cdata
    [CS]This attribute specifies the initial value of the control. If this attribute is not set, the initial value is set to the contents of the OPTION element.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Denn das hier echo "<option>$clubs</option>"; ist noch viel größerer Blödsinn weil kein Value angegeben ist der zur Weiterverarbeitung bzw. weitersendung wichtig ist!
    Nicht ganz richtig. Es funktioniert auch ohne.
    Zitat von selfhtml
    Normalerweise wird beim Absenden des Formulars der Text eines ausgewählten Listeneintrags übertragen, der zwischen <option> und </option> notiert ist. Sie können jedoch bestimmen, dass intern ein anderer Text übertragen wird.
    Auch in der Attributreferenz von selfhtml ist value für option nicht als Pflichattribut gekennzeichnet.
    Da magst du sicher Recht haben
    Ja,

    [edit] Trotzdem zu lahm...

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Zitat von litterauspirna Beitrag anzeigen
    Mal davon hier echo "<select name='$club'>"; ganz abgesehen!
    Denn das hier echo "<option>$clubs</option>"; ist noch viel größerer Blödsinn weil kein Value angegeben ist der zur Weiterverarbeitung bzw. weitersendung wichtig ist!
    Stimmt nicht ganz. Das erste funktioniert durchaus, da nur die äußeren Quotings gewertet werden und das zweite ist zwar nicht schön, geht aber auch. Ist kein Value angegeben, so wird (zumindest in den gängigen Browsern) der Knoten-Wert von <option> gesendet (hier also $clubs).
    Aber dieser RegisterGlobals-Fanatismus stößt einem schon unangenehm auf.

    Einen Kommentar schreiben:


  • litterauspirna
    antwortet
    Zitat von nikosch77-new Beitrag anzeigen
    [OT]
    Bücher verbrennt man nicht. Sind Kulturgut. Auch wenn's nur Rosamunde Pilcher Romane sind...

    Die Kommentare im Code Bsp. sind ja auch Sahne, was?
    Da magst du sicher Recht haben aber wenn das da in einem Buch so drin stand dann sollte man die gesamte Auflage vernichten! Denn das was da da steht kann hinten und vorne nicht funktionieren!

    Mal davon hier echo "<select name='$club'>"; ganz abgesehen!
    Denn das hier echo "<option>$clubs</option>"; ist noch viel größerer Blödsinn weil kein Value angegeben ist der zur Weiterverarbeitung bzw. weitersendung wichtig ist!

    mfg der litter

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    [OT]
    Bücher verbrennt man nicht. Sind Kulturgut. Auch wenn's nur Rosamunde Pilcher Romane sind...

    Die Kommentare im Code Bsp. sind ja auch Sahne, was?

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Oder ins Museum für Skurrilitäten bringen. Die bieten dir bestimmt sogar noch Geld dafür.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Zitat von ch4in Beitrag anzeigen
    Ist aus einem Buch von 2002, nicht das beste, hab nun auch ein neueres von Kannengiesser besorgt.
    Verbrennen, sofort verbrennen!

    Einen Kommentar schreiben:


  • ch4in
    antwortet
    Ist aus einem Buch von 2002, nicht das beste, hab nun auch ein neueres von Kannengiesser besorgt.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Woher hast du diesen Code bzw. welches Buch oder Tutorial lehrt sowas? Ist ja absolut grausam

    [edit]
    Dein Problem liegt hier:

    PHP-Code:
    echo "<select name='$club'>"
    $club sehe ich nirgends definiert.

    PHP-Code:
    $sql="INSERT INTO events (club) values ('$clubs')"
    Du verwendesz $clubs oben schonmal und damit wird natürlich immer der letzte Wert deiner Schleife in die DB geschrieben, schaffe unbedingt register_globals ab!!! Das ist nicht nur unschön, sondern sogar gefährlich!

    Einen Kommentar schreiben:

Lädt...
X