Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
338
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Gody1989 Gody1989 ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    8
    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($genreCOUNT_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:&nbsp;<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&auml;nge</h3>
                    
                                    <p>L&auml;nge&nbsp;<input name="Laenge" size="4" maxlength="3" />&nbsp;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>&nbsp;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">&copy; 2010 - Patrick Grygier | Filmdatenbank</p>
                            
        <!-- körper --></div>
                            
        <!-- alles --></div>
        </body>
    </html>
    Angehängte Dateien Angehängte Dateien
    Geändert von Gody1989 (03.09.10 um 17:04 Uhr)
     

  2. #2
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    305
    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:

    PHP-Code:
    <?php
    $i 
    count($genreCOUNT_RECURSIVE); 
    ?>
    count() ergibt bei optionalem Parameter meines Wissens nach trotzdem nur eine Zahl.
    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)

  3. #3
    Gody1989 Gody1989 ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    8
    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
     

  4. #4
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    305
    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:

    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);
    ?>
    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.
     
    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)

  5. #5
    Gody1989 Gody1989 ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    8
    Ich habe mal ne Frage:

    PHP-Code:
    //Query Ausführen
    $Einfügen mysqli_query($db$sql); 
    wofür soll $db stehen?
     

  6. #6
    Avatar von Gainwar
    Gainwar Gainwar ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Augsburg
    Beiträge
    128
    $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.

  7. #7
    Gody1989 Gody1989 ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    8
    okay dann versteh ich aba nicht warum weil die verbindung zur datenbank ist doch an dem punkt schon offen?
     

  8. #8
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    305
    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)

  9. #9
    Gody1989 Gody1989 ist offline Rookie
    Registriert seit
    Mar 2010
    Beiträge
    8
    okay danke =)
     

Ähnliche Themen

  1. checkbox value auf andere checkbox übertragen
    Von Smitmeit im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 09.03.10, 14:39
  2. Auswahlmenue
    Von sunflower84 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 21.12.06, 08:16
  3. Bekomme Fehlermeldung bei Auswahlmenue
    Von lordofscotland im Forum Javascript & Ajax
    Antworten: 12
    Letzter Beitrag: 21.08.05, 12:54
  4. [mysql] Frage zur Struktur einer FilmDB
    Von Peter Plastik im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 15.02.05, 22:05
  5. SELECT-Abfragen im Auswahlmenue ausgeben
    Von loddarmattheus im Forum PHP
    Antworten: 5
    Letzter Beitrag: 23.08.02, 11:22