Problem mit PHP und Formularen

daniel_1405

Grünschnabel
hallo zusammen,

vielleicht kann mir jemand von euch helfen. habe beim durchsuchen des forums auch schon das ein oder andere interessante gelesen zu meinem problem. aber irgendwie stehe ich total auf dem schlauch. total die blockade.

hier einmal mein skript. wie ihr seht ist dies eine einfache ausgabe aus ner datenbank in tabellenform. das funktioniert auch soweit. jetzt möchte ich aber wenn ich auf
PHP:
<a href="testino_edit.php?id=<?PHP echo $line['VW_BENUTZER_ID'];?>"><img src="images/ico_edit_16.png"></img></a>
klicke genau diesen datensatz ändern können. zur info. ich gebe bei dieser übersicht nicht alle felder aus der datenbank zu diesem datensatz aus.

idealerweise soll in der testino_edit.php der datensatz angezeigt werden, den ich ändern möchte. (dort sollen dann auch alle felder zu dem datensatz angezeigt werden).

PHP:
				<div id="table">
						<form method="get" action="">
						<table>
							<thead>
								<tr>
									<th>ID</th>
									<th>Recognition</th>
									<th>Forename</th>
									<th>Surname</th>
									<th>Country</th>
									<th>Provi 1</th>
									<th>Provi 2</th>
									<th>Provi 3</th>
									<th>Status</th>
									<th>Information</th>
                  					<th>Action</th>
								</tr>
							</thead>

							<tbody>
<?php
$query = "SELECT VW_BENUTZER_ID, VW_BENUTZER_KENNUNG, VW_BENUTZER_VORNAME, VW_BENUTZER_NACHNAME, VW_LAND_BEZ,VW_BENUTZER_PROVI1,VW_BENUTZER_PROVI2,VW_BENUTZER_PROVI3,VW_STATUS_BEZ,VW_BENUTZER_INFO
FROM vw_benutzer,vw_land, vw_status
where VW_BENUTZER_LAND_FK = VW_LAND_ID and VW_BENUTZER_STATUS_FK = VW_STATUS_ID";

$result = mysql_query($query);

while ($line = mysql_fetch_array($result)) { ?>

 <tr>
 <td><?PHP echo $line['VW_BENUTZER_ID'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_KENNUNG'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_VORNAME'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_NACHNAME'];?></td>
 <td><?PHP echo $line['VW_LAND_BEZ'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_PROVI1'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_PROVI2'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_PROVI3'];?></td>
 <td><?PHP echo $line['VW_STATUS_BEZ'];?></td>
 <td><?PHP echo $line['VW_BENUTZER_INFO'];?></td>
 <td><a href="testino_edit.php?id=<?PHP echo $line['VW_BENUTZER_ID'];?>"><img src="images/ico_edit_16.png"></img></a></td>


 </tr>

<?PHP
}
?>
							</tbody>
						</table>


danach möchte ich den datensatz einfach mittels eines updates ändern und speichern. könnt ihr mir helfen`? ich steh end auf dem schlauch.

vielen dank schon einmal.

gruß
daniel
 
Ich möchte dich bitten, in deinen nächsten Posts die Groß- und Kleinschreibung zu beachten. Danke

Ich versteh deine Frage nicht. Im Code öffnest du am Anfang ein Form-Tag, jedoch sehe ich kein Formular und auch kein </form>. Ohne Formular, keine Eingabe.
Als Erstes also mal ein Formular erstellen.
 
Wer oder was ist "testino_edit.php". Ist das die Datei in der auch der obige Code enthalten ist?

Dann müsstest du irgendwo eine Abfrage machen (IF) und prüfen ob der Parameter $_GET["id"] übergeben wurde oder nicht.

JA: Du zeigst ein Formular an in dem dann der Datensatz bearbeitet werden kann.

NEIN: Du zeigst das an was jetzt oben steht.

Nach dem Speichern wird die Seite dann ohne Parameter aufgerufen (zumindest ohne "id") und dadurch wird dann auch die Gesamtliste angezeigt.
 
Hallo zusammen,

zunächst einmal danke für die schnellen Antworten. Im folgenden seht Ihr den Code vom Formular. Das ist der Insert in die Datenbank. Funktioniert auch.

Code:
<form method="post" action="form_insert_user_eintrag.php" class="form">
						<div class="clear">
							<div class="half fl">
								<div class="form-field clear">
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Recognition: <span class="required">*</span></label>
										<input type="text" id="textfield" class="text fl" name="kennung" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="password" class="form-label fl-space2">Password:<span class="required">*</span></label>
										<input type="password" id="password" class="text fl" name="pwd" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Forename: <span class="required">*</span></label>
										<input type="text" id="textfield" class="text fl" name="vorname" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Surname: <span class="required">*</span></label>
										<input type="text" id="textfield" class="text fl" name="nachname" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Country: <span class="required">*</span></label>
										<?php
										// Datenbank auslesen und Ausgabe aller Stati
											echo "<select size=\"1\" name=\"land\" class=\"eingabetext\">";
											$ergebnis_land = mysql_query("SELECT * FROM vw_land");
											while ($datensatz = mysql_fetch_array($ergebnis_land))
												{
												echo "<option value=\"" . $datensatz['VW_LAND_ID'] . "\">";
												echo $datensatz['VW_LAND_ID'] .' - '. $datensatz['VW_LAND_BEZ'];
												echo "</option>\n";
												}
												echo "</select>\n";
										?>
									</div><!-- /.form-field -->

									<div class="form-field clear">
										<label for="textarea" class="form-label fl-space2">Information:</label>
										<textarea id="textarea" class="form-textarea" cols="50" rows="6" name="info" ></textarea>
									</div><!-- /.form-field -->

								</div><!-- /.form-field-->
							</div>
							<div class="half fr">
								<div class="form-field clear">
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Comission 1: <span class="required">*</span></label>
										<input type="text" id="textfield" class="text fl" name="provi1" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Comission 2: </label>
										<input type="text" id="textfield" class="text fl" name="provi2" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="textfield" class="form-label fl-space2">Comission 3: </label>
										<input type="text" id="textfield" class="text fl" name="provi3" />
									</div><!-- /.form-field -->
									<div class="form-field clear">
										<label for="select" class="form-label fl-space2">Status:<span class="required">*</span></label>
										<?php
										// Datenbank auslesen und Ausgabe aller Stati
											echo "<select size=\"1\" name=\"status\" class=\"eingabetext\">";
											$ergebnis_status = mysql_query("SELECT * FROM vw_status");
											while ($datensatz = mysql_fetch_array($ergebnis_status))
												{
												echo "<option value=\"" . $datensatz['VW_STATUS_ID'] . "\">";
												echo  $datensatz['VW_STATUS_ID'].' - '. $datensatz['VW_STATUS_BEZ'];
												echo "</option>\n";

												}
												echo "</select>\n";
									?>
									</div><!-- /.form-field -->
								</div><!-- /.form-field-->
							</div>
						</div>
						<div class="form-field clear">
							<input type="submit" class="submit fr" value="Submit" name="abschicken"/>
						</div><!-- /.form-field -->
						<span class="required">* mandatory item</span>

					</form>

Mein 1. Post war lediglich die Anzeige der Daten mit jeweils einem Edit-Button zu jedem Datensatz. Ich möchte jetzt erreichen, dass wenn ich auf Edit klicke genau dieser Datensatz in Formularform ausgegeben wird und ich diesen auch ändern kann. Anschliessend soll dann mittels eines Buttons (submit) die Änderung in die Datenbank übernommen werden.

Gruß
Daniel

edit:
Wer oder was ist "testino_edit.php". Ist das die Datei in der auch der obige Code enthalten ist?

In der Testino_edit.php soll der Datensatz in der Form des Formulars angezeigt werden. D.h ich muss irgendwie anhand der user_id den kompletten Datensatz angezeigt bekommen um diesen ändern zu können.


Wie gesagt ich stehe auf dem Schlauch.

Ich möchte dich bitten, in deinen nächsten Posts die Groß- und Kleinschreibung zu beachten. Danke

Ok. Werde ich mir merken. Sorry.

Ich versteh deine Frage nicht. Im Code öffnest du am Anfang ein Form-Tag, jedoch sehe ich kein Formular und auch kein </form>. Ohne Formular, keine Eingabe.
Als Erstes also mal ein Formular erstellen.

Ich habe vergessen, dass Form Ende zu posten. Die Ausgabe und die Eingabe ****en gut. Ich steh halt nur auf dem Schlauch wie ich das mit dem ändern hinbekomme.

Die Form für den Insert in Datenbank habe ich gerade gepostet. Ich hoffe Ihr könnt damit was anfangen.
 
Zuletzt bearbeitet von einem Moderator:
Ja dann sollte doch auf testino_edit.php wiederum ein Forumlar hinterlegt sein in dem du dann nochmal die gewünschten Felder abrufst und in den values der inputfelder ausgibst.

PHP:
<?php
echo'<form id="edit"  method="post" action="save_edit.php">'; 

$query = "SELECT 
VW_BENUTZER_ID, 
VW_BENUTZER_KENNUNG, 
VW_BENUTZER_VORNAME, 
VW_BENUTZER_NACHNAME, 
VW_LAND_BEZ,
VW_BENUTZER_PROVI1,
VW_BENUTZER_PROVI2,
VW_BENUTZER_PROVI3,
VW_STATUS_BEZ,
VW_BENUTZER_INFO

FROM vw_benutzer, vw_land, vw_status

where VW_STATUS_ID='".$_GET['id']."' ";

$result = mysql_query($query);

while ($line = mysql_fetch_array($result)) {

echo '<input type="text" name="VW_BENUTZER_KENNUNG" value="'.$line['VW_BENUTZER_KENNUNG'].'" />';


// etc ..

echo '<input type="submit" name="Submit" value="save" />';



}

echo'</form>'; 

?>
 
Hey zusammen,

ich habe da nur noch ein kleines Problemchen. Der Rest hat mega super funktioniert. Wird aber auch wieder recht banal sein denke ich.

PHP:
<?php 
					echo'<form method="post" action="save_edit.php">'; 

							$query = "	SELECT 
											VW_BENUTZER_ID, 
											VW_BENUTZER_KENNUNG,
											VW_BENUTZER_VORNAME, 
											VW_BENUTZER_NACHNAME,
											VW_LAND_BEZ,
											VW_BENUTZER_INFO
											
										FROM vw_benutzer, vw_land, vw_status
										where VW_BENUTZER_LAND_FK = VW_LAND_ID and VW_BENUTZER_STATUS_FK = VW_STATUS_ID and  
										VW_BENUTZER_ID='".$_GET['id']."'";
							
										$result = mysql_query($query);
										
										while ($line = mysql_fetch_array($result)) {
					
					
						echo'<div class="clear">';
								echo'<div class="half fl">';
									echo'<div class="form-field clear">';
										echo'<div class="form-field clear">';
											echo'<label for="textfield" class="form-label fl-space2">User-ID: <span class="required">*</span></label>';
											echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_ID" value="'.$line['VW_BENUTZER_ID'].'" />';
										echo'</div>';
										echo'<div class="form-field clear">';
											echo'<label for="textfield" class="form-label fl-space2">Recognition: <span class="required">*</span></label>';
											echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_KENNUNG" value="'.$line['VW_BENUTZER_KENNUNG'].'" />';
										echo'</div>';
										echo'<div class="form-field clear">';
											echo'<label for="textfield" class="form-label fl-space2">Forename: <span class="required">*</span></label>';
											echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_VORNAME" value="'.$line['VW_BENUTZER_VORNAME'].'" />';
										echo'</div>';
										echo'<div class="form-field clear">';
											echo'<label for="textfield" class="form-label fl-space2">Surname: <span class="required">*</span></label>';
											echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_NACHNAME" value="'.$line['VW_BENUTZER_NACHNAME'].'" />';
										echo'</div>';
										echo'<div class="form-field clear">';
											echo'<label for="textfield" class="form-label fl-space2">Country: <span class="required">*</span></label>';
											echo'<select size=\"1\" name=\"land\" class=\"eingabetext\">';
											$ergebnis_land = mysql_query("SELECT * FROM vw_land");
											while ($datensatz = mysql_fetch_array($ergebnis_land))
												{
												echo"<option value=\"" . $datensatz['VW_LAND_ID'] . "\">";
												echo $datensatz['VW_LAND_ID'] .' - '. $datensatz['VW_LAND_BEZ'];
												echo'</option>';
												}
												echo'</select>';
										echo'</div>';
										echo'<div class="form-field clear">';
											echo'<label for="textarea" class="form-label fl-space2">Information:</label>';
											echo'<textarea id="textarea" class="form-textarea" cols="50" rows="6" name="VW_BENUTZER_INFO" value="'.$line['VW_BENUTZER_INFO'].'" /></textarea>';
										echo'</div>';
										
										
										echo'<div class="form-field clear">';
											echo'<label for="select" class="form-label fl-space2">Status:<span class="required">*</span></label>';
												echo'<select size=\"1\" name=\"status\" class=\"eingabetext\">';
												$ergebnis_status = mysql_query("SELECT * FROM vw_status");
												while ($datensatz = mysql_fetch_array($ergebnis_status))
													{
													echo"<option value=\"" . $datensatz['VW_STATUS_ID'] . "\">";
													echo  $datensatz['VW_STATUS_ID'].' - '. $datensatz['VW_STATUS_BEZ'];
													echo'</option>';
	
													}
													echo'</select>';
										echo'</div>';
										
										
									echo'</div>';
								echo'</div>';
							echo'<div class="clear">';
										}
							
					echo'</form>';
				?>

Er zeigt mir leider nicht die Benutzer Infos obwohl was in der DB hinterlegt ist.

Hat wer ne Idee? Muss ich auf was bestimmtes achten wenn ich das so machen möchte?

Gruß
Daniel
 
Meinst du die Daten innerhalb des inputs? Also in den values die Daten? Sehe da eigentlich grad kein Fehler. Probiers mal mit mysql_fetch_object .. wobei das eigentlich egal ist, glaub ich!

PHP:
<?php 
                    echo'<form method="post" action="save_edit.php">'; 

                            $query = "    SELECT 
                                            VW_BENUTZER_ID, 
                                            VW_BENUTZER_KENNUNG,
                                            VW_BENUTZER_VORNAME, 
                                            VW_BENUTZER_NACHNAME,
                                            VW_LAND_BEZ,
                                            VW_BENUTZER_INFO
                                            
                                        FROM vw_benutzer, vw_land, vw_status
                                        where VW_BENUTZER_LAND_FK = VW_LAND_ID and VW_BENUTZER_STATUS_FK = VW_STATUS_ID and  
                                        VW_BENUTZER_ID='".$_GET['id']."'";
                            
                                        $result = mysql_query($query);
                                        
                                        while ($line = mysql_fetch_object($result)) {
                    
                    
                        echo'<div class="clear">';
                                echo'<div class="half fl">';
                                    echo'<div class="form-field clear">';
                                        echo'<div class="form-field clear">';
                                            echo'<label for="textfield" class="form-label fl-space2">User-ID: <span class="required">*</span></label>';
                                            echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_ID" value="'.$line->VW_BENUTZER_ID.'" />';
                                        echo'</div>';
                                        echo'<div class="form-field clear">';
                                            echo'<label for="textfield" class="form-label fl-space2">Recognition: <span class="required">*</span></label>';
                                            echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_KENNUNG" value="'.$line->VW_BENUTZER_KENNUNG.'" />';
                                        echo'</div>';
                                        echo'<div class="form-field clear">';
                                            echo'<label for="textfield" class="form-label fl-space2">Forename: <span class="required">*</span></label>';
                                            echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_VORNAME" value="'.$line->VW_BENUTZER_VORNAME.'" />';
                                        echo'</div>';
                                        echo'<div class="form-field clear">';
                                            echo'<label for="textfield" class="form-label fl-space2">Surname: <span class="required">*</span></label>';
                                            echo'<input type="text" id="textfield" class="text fl" name="VW_BENUTZER_NACHNAME" value="'.$line->VW_BENUTZER_NACHNAME.'" />';
                                        echo'</div>';
                                        echo'<div class="form-field clear">';
                                            echo'<label for="textfield" class="form-label fl-space2">Country: <span class="required">*</span></label>';
                                            echo'<select size=\"1\" name=\"land\" class=\"eingabetext\">';
                                            $ergebnis_land = mysql_query("SELECT * FROM vw_land");
                                            while ($datensatz = mysql_fetch_object($ergebnis_land))
                                                {
                                                echo"<option value=\"" . $datensatz->VW_LAND_ID . "\">";
                                                echo $datensatz->VW_LAND_ID .' - '. $datensatz->VW_LAND_BEZ;
                                                echo'</option>';
                                                }
                                                echo'</select>';
                                        echo'</div>';
                                        echo'<div class="form-field clear">';
                                            echo'<label for="textarea" class="form-label fl-space2">Information:</label>';
                                            echo'<textarea id="textarea" class="form-textarea" cols="50" rows="6" name="VW_BENUTZER_INFO" value="'.$line->VW_BENUTZER_INFO.'" /></textarea>';
                                        echo'</div>';
                                        
                                        
                                        echo'<div class="form-field clear">';
                                            echo'<label for="select" class="form-label fl-space2">Status:<span class="required">*</span></label>';
                                                echo'<select size=\"1\" name=\"status\" class=\"eingabetext\">';
                                                $ergebnis_status = mysql_query("SELECT * FROM vw_status");
                                                while ($datensatz = mysql_fetch_object($ergebnis_status))
                                                    {
                                                    echo"<option value=\"" . $datensatz->VW_STATUS_ID . "\">";
                                                    echo  $datensatz->VW_STATUS_ID.' - '. $datensatz->VW_STATUS_BEZ;
                                                    echo'</option>';
    
                                                    }
                                                    echo'</select>';
                                        echo'</div>';
                                        
                                        
                                    echo'</div>';
                                echo'</div>';
                            echo'<div class="clear">';
                                        }
                            
                    echo'</form>';
                ?>
 
Hey,

nur der Teil mit den Benutzer_infos. Da kommt leider nix raus. Könnte es an der Textarea liegen? Wenn ich nur ein Inputfeld nehme funktioniert es. Aber ich möchte schon die große Area haben.


PHP:
echo'<textarea id="textarea" class="form-textarea" cols="50" rows="6" name="VW_BENUTZER_INFO" value="'.$line['VW_BENUTZER_INFO'].'" /></textarea>';
 
ach so ja bei ner textarea musst du die ausgabe zwischen den tags platzieren:

PHP:
echo'<textarea id="textarea" class="form-textarea" cols="50" rows="6" name="VW_BENUTZER_INFO" />'.$line['VW_BENUTZER_INFO'].'</textarea>';
 
Zurück