Ankündigung

Einklappen
Keine Ankündigung bisher.

problem mit einer datenbakgestützten tabelle

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit einer datenbakgestützten tabelle

    hi,
    ich hab mal eine adressliste zusammengeschustert, die per php und mysql von den usern selbst gepflegt werden konnte.. dann hab ich mit dem gleichen aufbau (nur minmalen änderungen) noch 2 andere lsiten realisiert.. nun wollte ich es nochmal machen.. und es geht nicht mehr..

    ich schick euch hier mal den code.. geht sicher alles besser, aber es funktoniert immerhin.. bzw. es sollte funktionieren.. hab ja nur copy&paste gemacht.. aber es will irgendwie nicht.

    probleme: neue einträge werden nicht in die datenbank geschrieben und bei änderungen kommt folgende fehlermeldung:

    "You have an error in your SQL syntax near 'alter='124' , datum='04.04.2004' , jahr='1900' Where id='1'' at line 1"

    da fehlt zum beispiel der name...

    hier der code:
    Code:
      
    <?
      $host = "localhost";
      $dbname = "***";
      $user = "***";
      $password = "***"; 
     
    /* Verbindung aufbauen, auswählen einer Datenbank */ 
      $link = mysql_connect($host, $user, $password)
         or die();
      mysql_select_db($dbname) or die();
    ?>
    
    .
    .
    .
    
    <script type='text/javascript'>
    function set_values(name,alter,datum,jahr)
    {
     document.forms['gebliste'].action.value="edit";
     document.forms['gebliste'].name.value=name;
     document.forms['gebliste'].alter.value=alter;
     document.forms['gebliste'].datum.value=datum;
     document.forms['gebliste'].jahr.value=jahr;
    }
    function reset_values()
    {
     document.forms['gebliste'].action.value="neu";
     document.forms['gebliste'].name.value="";
     document.forms['gebliste'].alter.value="";
     document.forms['gebliste'].datum.value="";
     document.forms['gebliste'].jahr.value="";
    }
    </script>
    
    .
    .
    .
    
    <form action="../home/geburtstagsliste.php" method="post" name="gebliste" id="gebliste">
       <table width="42%" border="1" cellpadding="1" cellspacing="0" bordercolor="#203C5E" bgcolor="#B3C4D9" >
      <tr bgcolor="#F0F9FF">
        <td width="12"><div align="center">id</div></td>
        <td width="90"><div align="center">Name</div></td>
        <td width="59" bgcolor="#F0F9FF"><div align="center">wird..</div></td>
        <td width="61"><div align="center">am..</div></td>
        <td width="88"><div align="center">Geburtsjahr</div></td>
      </tr>
    <?
      
      $name = $_POST["name"];
      $alter = $_POST["alter"];
      $datum = $_POST["datum"];
      $jahr = $_POST["jahr"];
        
      if(isset($_POST['name']) && !empty($_POST['name']) && isset($_POST['alter']) && !empty($_POST['alter']) && isset($_POST['datum']) && !empty($_POST['datum']) && isset($_POST['jahr']) && !empty($_POST['jahr']))
    	 {        
    		if(isset($HTTP_POST_VARS['action']) and $HTTP_POST_VARS['action']==="edit")
             {
               $eintrag = "UPDATE geb_liste SET name='$name' , alter='$alter' , datum='$datum' , jahr='$jahr' Where id='".$_POST['editid']."'";
               $eintragen = mysql_query($eintrag);
               if (mysql_errno()) echo mysql_error();
             }
            else if (isset($HTTP_POST_VARS['action']) and $HTTP_POST_VARS['action']==="neu")
             {
    	       $eintrag = "INSERT INTO geb_liste (name, alter, datum, jahr) VALUES ('$name', '$alter', '$datum', '$jahr')";
               $eintragen = mysql_query($eintrag);
    	     } 
          }
      // ausführen einer SQL Anfrage
       $query = "SELECT * FROM geb_liste";
       $result = mysql_query($query)
          or die("Anfrage fehlgeschlagen: " . mysql_error());
     
     // Ausgabe der Ergebnisse in HTML
             
    	   $farbe_1 = '#B3C4D9';
    	   $farbe_2 = '#CBD7E6';
    	   $flag = 1;
               $count = 0;
    	   
    	  while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
           {
               if ($flag == 1)
               {
                 echo ' <tr bgcolor="'.$farbe_1.'" onMouseOver=this.bgColor="#FFCC33" onMouseOut=this.bgColor="'.$farbe_1.'"> ';
                 $flag = 2;
               }            
               else
               {
                    echo ' <tr bgcolor="'.$farbe_2.'" onMouseOver=this.bgColor="#FFCC33" onMouseOut=this.bgColor="'.$farbe_2.'"> ';
                    $flag = 1;
               } 
                        
           $count = $count+1;
           echo "<td align='center'><input type='radio' onClick=\"set_values('$line[name]','$line[alter]','$line[datum]','$line[jahr]');\" name='editid' value='$line[id]'></td>\n";       
    	   echo "<td>$line[name]</td>\n";
           echo "<td>$line[alter]</td>\n";  
           echo "<td>$line[datum]</td>\n";
    	   echo "<td>$line[jahr]</td>\n";
           print "\t</tr>\n";
    	   }
            
               print "\t<tr bgcolor='#F0F9FF'><td colspan='8'>Anzahl: $count</td></tr>\n";  
     ?>
    </table>
     [img]../../images/pfeil.jpg[/img]
    anklicken zum Bearbeiten der Zeile.
    
    
    
    
    
    
    <table width="790" height="293" border="0" cellpadding="2" cellspacing="3">
      <tr>
        <td width="149" height="42" valign="top">
    
    Name (Vorname, Name) 
          <input name="name" type="text" id="name">
        </p>
          </td>
        <td width="164" valign="top"></td>
        <td width="453" rowspan="4"><table width="400" height="99" border="1" align="center" cellpadding="3" cellspacing="0" bordercolor="#FFFFFF">
          <tr>
            <td height="22" bgcolor="#FFCC33"><div align="center">aufgepasst!</div></td>
          </tr>
          <tr>
            <td valign="top" bgcolor="#B3C4D9">
    
    Alle Felder m&uuml;ssen ausgef&uuml;llt werden, sonst passiert gar nichts. 
    
              
    
              Fehler beheben und Updates k&ouml;nnt Ihr selber machen. Einfach auf die entsprechende Zeile klicken und die Werte ver&auml;ndern.</p>
                
    
    Es ist nicht m&ouml;glich, Eintr&auml;ge zu l&ouml;schen, wohl aber sie bis zur Unkenntlichkeit zu ver&auml;ndern.. ich mach deshalb regelm&auml;&szlig;ig Backups der Datenbank um das zu verhindern. Aber Ihr seid ja clever, gelle?</p>
                
    
    Die ganze Sache nach Datum zu sortieren klappt noch nicht richtig... Hoffentlich sp&auml;ter mal.</p>
                
    
    und die anstehenden Geburtstage farbig zu markieren will auch nicht so recht..kommt aber.</p></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td height="42" valign="top">wird.. 
    
    <input name="alter" type="text" id="alter"></td>
        <td width="164" valign="top"></td>
      </tr>
      <tr>
        <td height="45" valign="top">am.. (TT.MM)
    
    <input name="datum" type="text" id="datum"></td>
        <td width="164" valign="top"></td>
      </tr>
      <tr>
        <td height="142" valign="top">Geburtsjahr (JJJJ)
    
    <input name="jahr" type="text" id="jahr">
    
    </td>
        <td width="164" valign="top">
    
          <input name="send_gebliste" type="submit" id="send_gebliste" value="Senden">
          <input name="reset" type="reset" id="reset" value="Reset" onClick="reset_values();">
          <input type='hidden' id='action' name='action' value='neu'></td>
      </tr>
    </table>
      </form>
    ich hoffe, ihr blickt da einigermaßen durch und könnt mir sagen wo da der fehler drin ist.. die tabelle in der datenbank heißt übrigens "geb_liste" und hat folgende werte:

    id / int / not null /auto increment
    name / varchar / not null
    alter / varchar / not null
    datum / varchar / not null
    jahr / varchar / not null

    ich danke euch!

    ach so.. zum besseren verständnis: hier die seite: http://www.vossomatik.de/html/home/geburtstagsliste.php

  • #2
    Re: problem mit einer datenbakgestützten tabelle

    Zitat von vossomatik
    "You have an error in your SQL syntax near 'alter='124' , datum='04.04.2004' , jahr='1900' Where id='1'' at line 1"
    RTFM! ALTER ist ein reserviertes Wort.

    Kommentar


    • #3
      danke!! da wär ich ja nie drauf gekommen.. jetzt geht alles!!

      Kommentar

      Lädt...
      X