Datenbank aendern

marc669

Mitglied
Ich hab da mal ein problem und komme nicht weiter. Hier mal mein Script

PHP:
<?
include('connect.php');
 mysql_connect($host, $user, $pw);
 mysql_select_db($database);

  if($gezeigt=="ja")
   {
    $sql=" UPDATE mitglieder SET per_nummer='$per_nummer', per_name='$per_name', per_bewilligung='$per_bewilligung', per_erw='$per_erw', per_kinder='$per_kinder', per_gesamt='$per_gesamt', per_wohnort='$per_wohnort', WHERE per_id=$welcher";
   $erg=mysql_query($sql);
   
   
   $erg=mysql_query($sql);

    while(list ($per_id, $per_nummer, $per_name, $per_bewilligung, $per_erw, $per_kinder, $per_gesamt, $per_wohnort) = mysql_fetch_row($erg))
    {
   <form action='aendern.php?welcher=$welcher' method='post' name='formi'>
   <input type='hidden' name='gezeigt' value='ja'></input>
     <table border='0' cellpadding='5' cellspacing='0' bgcolor='#E0E0E0'>
     <tr><td align='right'>Nummer:</td>
	 <td><input name='per_nummer' value='$per_nummer' type='text' size='30' maxlength='40'></td></tr>

     <tr><td align='right'>Name:</td>
	 <td><input name='per_name' value='$per_name' type='text' size='30' maxlength='40'></td></tr>

     <tr><td align='right'>Bewilligung:</td><td><input name='per_bewilligung'value='$per_bewilligung' type='text' size='30' maxlength='40'></td></tr>

     <tr><td align='right'>Erw:</td><td><input name='per_erw' value='$per_erw' type='text' size='30' maxlength='40'></td></tr>
	 <tr><td align='right'>Kinder:</td><td><input name='per_kinder' value='$per_kinder' type='text' size='30' maxlength='40'></td></tr><tr>

     <td align='right'>Gesamt:</td><td><input name='per_gesamt' value='$per_gesamt' type='text' size='30' maxlength='40'></td></tr>

     <tr><td align='right'>Wohnort:</td><td><input name='per_wohnort' value='$per_wohnort' type='text' size='30' maxlength='40'></td></tr>

     

     <tr><td align='right'>Formular:</td><td>
     <input type='submit' value='Absenden'><input type='reset' value='Abbrechen'></td></tr></table><br><br>
	 <a href='index.php'>Zurück zur Startseite</a><br><br> 

     
	 
</form>
}
     }
 mysql_close();
 ?>
 
Die Frage ist - was ist das Problem?
Was funktioniert nicht?
Welche Fehler treten auf?
Steht in deiner php.ini register_globals auf on?

Du siehst - es gibt noch eine Menge Fragen, bevor dein Problem gelöst werden kann.
 
Also entweder du schliesst dein php tag bevor du mit html anfängst oder (unschön) du wirfst das ganze html in ein echo...solltest du dich für ersteres entscheiden musst du allerdings aus beispielsweise
PHP:
<form action='aendern.php?welcher=$welcher' method='post' name='formi'>
folgendes machen
PHP:
<form action='aendern.php?welcher=<?php echo $welcher; ?>' method='post' name='formi'>
 
Muss dann nur diese Zeile ändern?

Code:
<form action='aendern.php?welcher=<?php echo $welcher; ?>' method='post' name='formi'>

ich bin noch nicht so lange dran an PHP und mein wissen ist gering
 
nope, es müsste in etwa so aussehen
PHP:
<?php

include ('connect.php');
mysql_connect($host, $user, $pw);
mysql_select_db($database);

if ($gezeigt == "ja")
{
    $sql = " UPDATE mitglieder SET per_nummer='$per_nummer', per_name='$per_name', per_bewilligung='$per_bewilligung', per_erw='$per_erw', per_kinder='$per_kinder', per_gesamt='$per_gesamt', per_wohnort='$per_wohnort', WHERE per_id=$welcher";
    $erg = mysql_query($sql);


    $erg = mysql_query($sql);

    while (list($per_id, $per_nummer, $per_name, $per_bewilligung, $per_erw, $per_kinder,
        $per_gesamt, $per_wohnort) = mysql_fetch_row($erg))
    {

?>
   <form action='aendern.php?welcher=<?php echo $welcher; ?>' method='post' name='formi'>
		<input type='hidden' name='gezeigt' value='ja'></input>
		<table border='0' cellpadding='5' cellspacing='0' bgcolor='#E0E0E0'>
    		 <tr>
			 	<td align='right'>
				 	Nummer:
			 	</td>
     			<td>
	 				<input name='per_nummer' value='<?php echo $per_nummer; ?>' type='text' size='30' maxlength='40'>
	 			</td>
			</tr>

     		<tr>
			 	<td align='right'>
				 	Name:
				 </td>
     			<td>
				 	<input name='per_name' value='<?php echo $per_name; ?>' type='text' size='30' maxlength='40'>
				</td>
			</tr>

     		<tr>
				<td align='right'>
				 	Bewilligung:
				</td>
				<td>
					<input name='per_bewilligung'value='<?php echo $per_bewilligung; ?>' type='text' size='30' maxlength='40'>
				</td>
			</tr>

     		<tr>
			 	<td align='right'>
				 	Erw:
				</td>
				<td>
					<input name='per_erw' value='<?php echo $per_erw; ?>' type='text' size='30' maxlength='40'>
				</td>
			</tr>
     		<tr>
			 	<td align='right'>
				 	Kinder:
		 		</td>
		 		<td>
		 			<input name='per_kinder' value='<?php echo $per_kinder; ?>' type='text' size='30' maxlength='40'>
		 		</td>
			</tr>
			<tr>
     			<td align='right'>
				 	Gesamt:
				</td>
				<td>
					<input name='per_gesamt' value='<?php echo $per_gesamt; ?>' type='text' size='30' maxlength='40'>
				</td>
			</tr>
			<tr>
				<td align='right'>
					Wohnort:
				</td>
				<td>
					<input name='per_wohnort' value='<?php echo $per_wohnort; ?>' type='text' size='30' maxlength='40'>
				</td>
			</tr>
			<tr>
				<td align='right'>
					Formular:
				</td>
				<td>
     				<input type='submit' value='Absenden'>
			 		<input type='reset' value='Abbrechen'>
				</td>
			</tr>
			</table>
			<br><br>
     		<a href='index.php'>Zurück zur Startseite</a><br><br> 
	</form>
<?php

    }
}
mysql_close();

?>

Irgendwie musst du ihm ja klar machen das das eine php variable ist die er da anzeigen soll.
Andernfalls würde beispielsweise in deinen input text feldern nur stupide der jeweils in value eingetragene variablenname angezeigt.
 
Das war auch nur der erste Fehler der mir beim schnell mal drüber schauen so aufgefallen ist , was nicht heisst das es der einzige war ;)

Kann es sein das du hier

PHP:
if ($gezeigt == "ja")

nach einer variablen fragst die du ihm erst hier übergibst?

HTML:
<input type='hidden' name='gezeigt' value='ja'></input>

Wie soll er dir da was anderes als eine weisse Seite anzeigen?
Du sagst ihm "WENN $gezeigt "ja" ist, dann zeig mir das Feld in dem $gezeigt erst gesetzt wird."
Ich hoffe du verstehst was ich meine.
 
Nein, was ich meine ist folgendes:

Er wird dir das Formular niemals anzeigen können weil:
Du prüfst ob die variable $gezeigt den Wert ja hat (if ($gezeigt == "ja") ).
Jetzt können folgende 2 Fälle eintreten :
Fall 1: Wenn $gezeigt den Wert ja hat dann soll er das SQL Statement ausführen und das Formular anzeigen.
Fall 2: Wenn $gezeigt nicht den Wert ja hat dann soll er garnichts machen.

So wie das Script jetzt geschrieben ist wird IMMER Fall 2 eintreten weil du die variable
$gezeigt erst mit dem Wert ja belegst wenn if ($gezeigt == "ja") Wahr ist.
if ($gezeigt == "ja") Kann aber nie Wahr sein weil du ja immer Fall 2 auslöst.

War das verständlicher?

Solltest du es immernoch nicht hinbekommen wäre es sinnvoll wenn du mal genauer erklärst was du eigentlich erreichen willst.
 
Zuletzt bearbeitet:
Zurück