PHP Script in HTML File

08/28/2013 17:23 DrDreo#1
Hello, gleich mal die Frage:
Normalerweiße kann man doch PHP im HTML-File benutzen.

Doch bei mir funktioniert das Script nur wenn ich es als .php aufrufe und nicht wenn ich es im HTML File aufrufe.

Siehe:
PHP Code:
<?php 
mysql_connect
('localhost''supervisor''su');
mysql_select_db('personal');


$result mysql_query("SELECT * FROM `personal`") or die(mysql_error());

$liste_nach ='';
$liste_vor ='';
$liste_stat ='';

while(
$row mysql_fetch_array($result)) 
{
    
$liste_nach .= '<option value="' $row['id'] . '">' $row['Nachname'] . '</option>';
    
$liste_vor .= '<option value="' $row['id'] . '">' $row['Vorname'] . '</option>';
    
$liste_stat .= '<option value="' $row['id'] . '">' $row['Status'] . '</option>';
}

echo 
'<select name="nachname">' $liste_nach '</select>';
echo 
'<select name="vorname">' $liste_vor '</select>';
echo 
'<select name="status">' $liste_stat '</select>';



  
?>
Dieser Code funktioniert einwandfrei als php aber nicht wenn ich ihn ins HTML file kopieren

HTML Code:
<?php 
mysql_connect('localhost', 'supervisor', 'su');
mysql_select_db('personal');


$result = mysql_query("SELECT * FROM `personal`") or die(mysql_error());

$liste_nach ='';
$liste_vor ='';
$liste_stat ='';

while($row = mysql_fetch_array($result)) 
{
    $liste_nach .= '<option value="' . $row['id'] . '">' . $row['Nachname'] . '</option>';
	$liste_vor .= '<option value="' . $row['id'] . '">' . $row['Vorname'] . '</option>';
	$liste_stat .= '<option value="' . $row['id'] . '">' . $row['Status'] . '</option>';
}

echo '<select name="nachname">' . $liste_nach . '</select>';
echo '<select name="vorname">' . $liste_vor . '</select>';
echo '<select name="status">' . $liste_stat . '</select>';



  
?>

<html>
<head>
<title>Anmeldung</title>
</head>
<body>

<h1>Formular für Anmeldung</h1>

 
<form action="" method="post" > 
	

  <input type="text" name="nachname" size="30" maxlength="30" onclick="this.value='';"onfocus="this.select()" onblur="this.value=!this.value?'Nachname':this.value;"value="Nachname">
  <br>
  <input type="text" name="vorname" size="30" maxlength="40" onclick="this.value='';"onfocus="this.select()" onblur="this.value=!this.value?'Vorname':this.value;"value="Vorname">
  <br>
  <input type="text" name="status"  size="30" maxlength="40" onclick="this.value='';"onfocus="this.select()" onblur="this.value=!this.value?'Status':this.value;"value="Status">
  <br>
  <input type="text" name="funktion" size="30" maxlength="40" onclick="this.value='';"onfocus="this.select()" onblur="this.value=!this.value?'Funktion':this.value;"value="Funktion">
  <br>
  <textarea name="kommentar" rows="3" cols="25" onclick="this.value='';"onfocus="this.select()" onblur="this.value=!this.value?'Kommentar hier abgeben':this.value;"/>Kommentar hier abgeben</textarea>
  <br>
  <input type="submit" name="senden" value="Absenden" />
</form>

</body>
</html>
Wenn ich das HTML file ausführe, läuft der HTML Code ohne Problem aber der PHP SourceCode wird ab der "While" Schleife angezeigt.
08/28/2013 18:48 Synatex#2
Kanns sein das du im HTML File die Endung .html benutzt? Dann kann der PHP Parser nämlich nicht wissen das dein Code da PHP ist - muss auch auf .php enden.
08/28/2013 19:16 ωօղძεɾlმղძ#3
Quote:
Originally Posted by Synatex View Post
Kanns sein das du im HTML File die Endung .html benutzt? Dann kann der PHP Parser nämlich nicht wissen das dein Code da PHP ist - muss auch auf .php enden.
Oder den Parser sagen er soll PHP code von html, asp, php daten lesen. (php.ini)
08/28/2013 19:26 DrDreo#4
Geht das dann überhaupt, dass ich im HTML File ein Drop Down Menü hab, welches mit Daten aus der MySQL DB gefüttert wird?
08/28/2013 19:54 マルコ#5
Ja.
Du kannst in eine HTML Datei ohne Probleme PHP rein schreiben (PHP ist ein preprocessor, wo sonst sollte er stehen ;) ). Die Anfang und End Tags <?php ?> grenzen dabei PHP vom Rest ab. Die Endung ist im Normalfall PHP. Aber das kann man, wie bereits gesagt, ändern (in der VHost Datei)
08/28/2013 20:14 DrDreo#6
Ok, normalwerweiße hab ich dann mit der <form action="blabla.php"> das File nach dem betätigen des Sumbit Buttons aufgerufen.

Soll/ Kann ich dann einfach die selbe Datei da rein schreiben? Denn ich will die Drop Downs nach dem Submit in die Datenbank schreiben.
08/29/2013 02:20 マルコ#7
klar kannst du das

PHP Code:
<?php
  dbConnect
();
  if(isset(
$_GET['foo']))
  {
    
doSumthing();
  }
?>
<!DOCTYPE HTML>
<html>
  <head><!-- ... --></head>
  <body>
    <?php
      makeTable
();
    
?>
  </body>
</html>
08/29/2013 09:41 DrDreo#8
wofür steht das makeTable()?
08/29/2013 10:11 Der-Eddy#9
Eine fiktive Funktion welche den Inhalt der Übergabe nimmt und in die Datenbank einträgt
08/30/2013 04:59 マルコ#10
Ich hab fiktive Funktionen eingesetzt, um zu zeigen, wo was passieren könnte. Entsprechende Funktionalitäten sehen imho sowieso besser in eigenen Funktionen aus (weniger Code zwischen dem HTML).

dbConnect(); verbindet sich dabei mit der Datenbank
doSumthing(); ist die Funktion, die ausgelöst wird, wenn jemand die Datei mit GET Parameter ´foo´ aufruft (z.B. eine Form abschicken)

und

makeTable(); ist die Funktion, die z.B. eine Tabelle erwstellt (die aus ner DB ausgelesen werden kann - du könntest hier auch stattdessen dein Dropdown rein setzen oder wasauchimmer).
08/30/2013 17:26 DrDreo#11
Okay, bis jetzt war das alles sehr hilfreich :)

Doch jetzt steh ich vor der nächsten Hürde ^^

HTML Code:
$result = mysql_query("SELECT * FROM `personal`");

$liste_name ='';
$liste_stat ='';

$liste_name .= '<option value="" >Name auswählen..</option>';
$liste_stat .= '<option value="" >Ihr Status..</option>';

while($row = mysql_fetch_array($result)) 
{	
    $liste_name .= '<option value="' . $row['id'] . '">' . $row['Nachname'] . $row['Vorname'] .'</option>';
	$liste_stat .= '<option value="' . $row['id'] . '">' . $row['Status'] . '</option>';
}

if(isset($_POST['submit']))
	{
		mysql_query("UPDATE  `personal`.`personal` SET  `Nachname` =  'jew' WHERE  `personal`.`id` =2;");
	}

  
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Anmeldung</title>
</head>
<body>

<h1>Formular für Anmeldung</h1>

 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > 

	<?php
	echo '<select name="nachname">' . $liste_name .'</select>';
	//echo '<br>';
	echo '<select name="status">' . $liste_stat . '</select>';
	echo '<br>';
	?>
  <textarea name="kommentar" rows="3" cols="26" onclick="this.value='';"onfocus="this.select()" onblur="this.value=!this.value?'Kommentar hier abgeben.':this.value;"/>Kommentar hier abgeben.</textarea>
  <br>
  <input type="submit" name="submit" value="Absenden" />
</form>

</body>
</html>
Hier gleich mal der ganze Kot für die fleißigen Helfer :D
Also, das mit dem UPDATE funktioniert jetzt soweit, dass wenn ich auf Submit drücke dieser bestimmte Wert editiert wird.

Nur welche Variablen muss ich dann vewenden, damit der ausgewählte Name in der DB editiert und nur der Status upgedatet wird?

Also nochmals klar:
Man soll seinen Namen auswählen können und dann seinen jetzigen Status.
Wie zeig ich der DB welche Spalte sie updaten soll? Da ich Vor & Nachname in getrennten Spalten habe, gibts da ne if-Funktion wo ich überprüfe, dass es Vorname mit diesem Nachnamen gibt?

kleine Veranschaulichung des Formulars:
[Only registered and activated users can see links. Click Here To Register...]
08/31/2013 08:41 マルコ#12
ähm joa. Sorry, aber ich versteh die Frage nicht. Du hast das Updaten geschafft, aber weißt nicht, wie du updaten sollst?
Wenn du nach Conditions in SQL suchst, schau mal `WHERE` an.
Code:
UPDATE MyDB.MyTable SET comment='Hellow' WHERE fname='foo' AND lname='bar';
08/31/2013 15:20 DrDreo#13
Ja ne is klar ^^ WHERE macht aus, welche Spalte upgedatet werden soll..

NUR ich hab ja keine statische Spalte. Ich will ja nicht immer nur beim selben Namen den Status ändern.

Also wie mach ich das am Besten, dass ich den Status des bestimmten Namens ändere.
08/31/2013 18:08 Synatex#14
Pro Spalte immer ne feste ID angeben (die kannste beim erstellen auf Auto-Increment stellen), also selbst hochzählend. Dann kannst auf alles zugreifen.
09/01/2013 19:25 DrDreo#15
ok, ja die ID hab ich!

Nur weiß ich nicht genau wie ich die variable in dem UPDATE command nutzen kann/soll.

Könntest du mir die eine Zeile schreiben, wenn die ID "id" heißt? ^^