ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
338
338
EMPFEHLEN
-
Hallo ich habe angefangen eine Film Datenbank zu schreiben leider kommt es jetzt immer zu einer zeitüberschreitung
Code :1
Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\film\eintragen.php on line 54
wär aba nett wenn jem auch allgemein mal über das script guckt wenn er Zeit hat =) danke schonmal
PHP-Code:<?php
include ("functions.inc.php");
//Zum Eintragen neuer Datensätze in das Gästebuch
// Prüfen, ob sich die Seite selbst Aufgerufen hat
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert")
{
// Die Seite hat sich selbst aufgerufen
// Pflichtfeldkontrole
$error_msg = "";
if( $_REQUEST["Titel"]=="")
{
$error_msg = "Bitte geben Sie einen Titel an<br>";
}
if($error_msg == "")
{
// Alles Okay
// Zugriff auf Datenbank
mysqlconnect();
// INSERT
//Film eintragen
$query = "INSERT INTO film_tb (Titel, Handlung, Laenge, FSK) VALUES( ";
$query .= " '" . $_REQUEST["Titel"] . "', ";
$query .= " '" . $_REQUEST["Handlung"] . "', ";
$query .= " '" . $_REQUEST["Laenge"] . "', ";
$query .= " '" . $_REQUEST["FSK"] . "' ";
$query .= " ) " ;
mysql_query($query);
$Film = mysql_insert_id();
// Genre eintragen
if(isset($_REQUEST['genre']))
{
$genre = $_REQUEST['genre'];
$i = count($genre, COUNT_RECURSIVE);
$sql = "INSERT INTO film_genre (ID_Film, ID_Genre) VALUES( ";
do {
$sql.= " '{$Film}', {$genre[$i]}";
}while ($i >= 0);
$sql .= " ) " ;
echo $query;
echo $sql;
}
}
//------------------------------------------------------------------------------------
// In die Datenbank eintragen
$result = mysql_query($query);
if( ! $result )
{
die("Konnte den Datensatz nicht eintragen: " . mysql_error() );
}
$result = mysql_query($sql);
if( ! $result )
{
die("Konnte den Datensatz nicht eintragen: " . mysql_error() );
}
// wechsel auf index
die;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta name="language" content="de"/>
<title>Filmdatenbank</title>
<link rel="stylesheet" type="text/css" href="css/alles.css" media="screen, projection" />
</head>
<body>
<div id="alles">
<div id="header">
<!-- header --></div>
<div id="körper">
<div id="nav">
<?php
include "nav.php";
?>
<!-- nav --></div>
<div id="inhalt">
<h1 class="mitte"> | Film Eintragen | </h1>
<form action="<?php echo $_REQUEST["PHP_SELF"]; ?>" method="POST">
<p>
<p>
<h3>Titel</h3>
<p>Titel: <input name="Titel" maxlength="255" size="40"></p>
</p>
<p>
<h3>Genre</h3>
<?php
// DB-Verbindung
mysqlconnect();
// SQL-Abfrage Ausführen
$res = mysql_query("select * from genre_tb");
// Anzahl der Datensätze bestimmen
$num = mysql_num_rows($res);
// Datensätze ermitteln, im Array speichern und ausgeben
while ($dsatz = mysql_fetch_assoc($res))
{
echo '<p><input type="checkbox" name="genre[ ' . $dsatz["Genre_ID"] . ' ]" value=" ' . $dsatz["Genre_ID"] . ' " /> ' . $dsatz["genre"] . ' </p>';
}
?>
</p>
<p>
<h3>Handlung</h3>
<p><textarea name="Handlung" cols="70" rows="20"></textarea></p>
</p>
<p>
<h3>Länge</h3>
<p>Länge <input name="Laenge" size="4" maxlength="3" /> in Minuten</p>
</p>
<p>
<h3>Altersfreigabe</h3>
<p><select name="FSK">
<option value="0">
0 </option>
<option value="6">
6 </option>
<option value="12">
12 </option>
<option value="16">
16 </option>
<option value="18">
18 </option>
</select> FSK</p>
</p>
<input type="hidden" name="do" value="insert">
<input type="submit" value="Senden" /><input type="reset" />
</p>
<p></p>
</form>
<!-- inhalt --></div>
<p class="boden">© 2010 - Patrick Grygier | Filmdatenbank</p>
<!-- körper --></div>
<!-- alles --></div>
</body>
</html>Geändert von Gody1989 (03.09.10 um 17:04 Uhr)
-
Grüße,
also soweit ich das beurteilen kann, liegt das Problem an dieser Zeile:
PHP-Code:<?php
do {
$sql.= " '{$Film}', {$genre[$i]}";
}while ($i >= 0);
?>
grad gesehen, dass die Fehlermeldung gleicher Meinung ist 
Das Problem ist das diese "Schleife" immer ausgeführt wird, wenn etwas in die DB geschrieben wird und da ist $i durch deine obige Zeile:
count() ergibt bei optionalem Parameter meines Wissens nach trotzdem nur eine Zahl.PHP-Code:<?php
$i = count($genre, COUNT_RECURSIVE);
?>
Demzufolge wird $i nicht kleiner und du erzeugst eine Endlosschleife.Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
Aber count liefert den die anzahl der arrays zurück also kann man diese Zahl z.B. bei drei gesetzden doch auch abzählen
weiß jem ne andere lösung= habe es mit na for schleife probiert funktioniert aba net so ganz
-
Grüße nochmal,
die for-Schleife ist schon der richtige Ansatz, denn dadurch wird die Variable $i verändert und du erzeugst keine Endlosschleife (ich hab hier allerdings mal mit $x gearbeitet und mit $i als Bedingung).
Hab da schon mal was vorbereitet:
Ich hab jetzt absichtlich nicht auf den Fall hin geprüft, dass $i auch "0" sein kann, da du das Ganze ja schon in deinem Code per "isset" getan hast.PHP-Code:<?php
$genre = $_REQUEST['genre'];
$i = count($genre);
$sql = "INSERT INTO film_genre (ID_Film, ID_Genre) VALUES ";
for($x=0;$x<=$i-1;$x++) {
if($i=="1" || $x==$i) {
$sql.= "('".$Film."', '".$genre[$x]."')";
} else {
$sql.= "('".$Film."', '".$genre[$x]."'),";
}
}
//Query Ausführen
$Einfügen = mysqli_query($db, $sql);
?>Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
Ich habe mal ne Frage:
wofür soll $db stehen?PHP-Code://Query Ausführen
$Einfügen = mysqli_query($db, $sql);
-
$db steht für deine Datenbank Resource bzw. Verbindung, welche du per mysqli_connect() bekommen hast.
PHP-Code:<?php
$db = mysqli_connect("localhost", "username", "password");
?>Manuel Freiholz
iF.Gainwar
iF.SVNAdmin (http://www.insanefactory.com/if-svnadmin/)
Subversion Benutzeradministration mit PASSWD und LDAP Integration.
-
okay dann versteh ich aba nicht warum weil die verbindung zur datenbank ist doch an dem punkt schon offen?
-
Grüße,
bei normalem Gebrauch sollte man das Ganze als präventive Maßnahme ansehen.
Sollte dein Vorhaben etwas komplexer werden, könnte es ja auch sein, dass mehrere Datenbankverbindungen aufgebaut werden und du musst der "Funktion" dann auch übermitteln bezüglich welcher Verbindung was ausgeführt werden soll.
Zusammenfassend könnte man sagen, dass man es sich so angewöhnen sollte, da sich das Skript dann später beliebig erweitern lässt, ohne große Teile des Codes zu verändern.Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
okay danke =)
Ähnliche Themen
-
checkbox value auf andere checkbox übertragen
Von Smitmeit im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 09.03.10, 14:39 -
Auswahlmenue
Von sunflower84 im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 21.12.06, 08:16 -
Bekomme Fehlermeldung bei Auswahlmenue
Von lordofscotland im Forum Javascript & AjaxAntworten: 12Letzter Beitrag: 21.08.05, 12:54 -
[mysql] Frage zur Struktur einer FilmDB
Von Peter Plastik im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 15.02.05, 22:05 -
SELECT-Abfragen im Auswahlmenue ausgeben
Von loddarmattheus im Forum PHPAntworten: 5Letzter Beitrag: 23.08.02, 11:22





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen