sql sortieren....

alexorg

Mitglied
hallo, habe folgendes problem:

immer wenn ich aus meiner mysql perp php script etwas löschen will (das klappt auch) und dann dann einen neuen eintrag per php script hinzufügen will kommt folgende fehler meldung:

Konnte Datei nicht hinzufügen :Duplicate entry '3' for key 1

das passiert immer wenn ich z.B einen eintrag mit der id 1 lösche und dann einen neuen hinzufüge wenn ich alle einträge lösche und dann alle hinereinander hinzufüge klappt es aber

hat irgendjemand nen tip?

ich bräcuhte ealso irgendwie ne möglichkeit alle ids wieder der reinfolge nach zu sortieren von 0 bis XXX gibts da nen befehl oder so?
 
ein post reicht ....

steht die id auf autoincrement und hat kein defaultwert ?

select * from woauchimmmer order by id
 
sry bin total n00b in php und mysql. aber es steht nicht auf auto increment und sie hat keinen standart wert ... soll ich das einstellen oder nicht? ach ja aund wo soll ich das mit select * from woauchimmmer order by id einfügen... da wo er den eintarg löscht oder da wo er ihn neu reinschreibt?
 
ok ja auf autoincrement stellen

das order kommt nur beim auslesen hin

beim schreiben oder löschen nicht
 
es geht immer noch nicht..

also wenn in der datenbank 3 einträge gibt:

id0, id1, id2

und ich dann aber id2 lösche dann aber id1 löche und wieder einen hinzufügen will kommt wieder diese meldung:

Konnte Datei nicht hinzufügen :Duplicate entry '2' for key 1


ich bin am verzweifeln.... :(

hier mal der code (issn bissel länger aber egal :) )

PHP:
<?php
session_start();
?>
<?
include("dbset.php");
include("inc/links_config.inc");

if($heact=="true") {
    include("header.inc");}
    else
    {include("leer.inc");}
?>

<html>
<head>
</head>
<style type="text/css">
<? echo $css ?>
</style>
<body bgcolor="<? echo $bgcolor ?>" text="<? echo $textcolor ?>" alink="<? echo $alinkc ?>" vlink="<? echo $vlinkc ?>" link="<? echo $linkc ?>">
<font face="<? echo $face ?>" size="<? echo $size ?>">
<?php


if(! session_is_registered("admin1") || !session_is_registered("pass1"))
   {
       print "die Seite ist nicht mehr gültig... <br><br> Loggen Sie sich
       <a href=\"index.php?style=linkadmin\" target=\"top\">hier</a> erneut ein";
       exit;
       }
       
 $umleitung="<meta http-equiv=\"refresh\" content=\"1;URL=index.php?style=edit\">";
 $dat3=mysql_query("SELECT * FROM mthphplink");
 $anzahl=mysql_num_rows($dat3);
 $sortieren=mysql_query("select * from mthphplinkorder by id");
 
  print "<br><br><left>.welcome to the admin left</left><br>";
  print "<left>.zur zeit sind <b>$anzahl</b> einträge vorhanden</left><br>";
  print "<left><a href=index.php?style=edit>.currently status</a> | <a href=\"index.php?style=edit&action=logout\" target=\"_self\">.logout</a></left><br>";
  
if($action==logout)
   {
       session_unset();
       session_destroy();
       print"<left><b>bye!<br>du wirst weitergeleitet</b></left>";
       print"<meta http-equiv=\"refresh\" content=\"2;URL=index.php?style=linkadmin\">";
       mysql_close($link);
       exit;
       }
       
//Zurücksetzen

if($action==zurueck)
  {
      $zurueck="UPDATE mthphplink SET visits='0' WHERE id=$id";
      $ergebnis=mysql_query($zurueck);
      if (!$ergebnis)
         die ("Konnte nicht zurücksetzten :".mysql_error() );
         print "<left><b>Erfolgreich zurückgesetzt</b></left>";
         print $umleitung;
         exit;
         }
         
//Datei hinzufügen

if($action==eintragen)
  {
      $beschreibung=nl2br($beschreibung);
      $beschreibung=str_replace("<br />", "<br>", $beschreibung);
      $id=$anzahl++;
      $anfrage="INSERT INTO mthphplink (id, name, linkx, beschreibung, visits)
                VALUES ('$id', '$name', '$linkx', '$beschreibung', '$visits')";
          mysql_query($anfrage, $link)
            or die ("Konnte Datei nicht hinzufügen :".mysql_error() );
          print "Datensatz erfolgreich eingetragen! Sie werden umgeleitet!";
          print $umleitung;
          exit;
          
      }
      
//Datei bearbeiten

if($action==bearbeiten)
   {
       $bearbeiten=mysql_query("SELECT * FROM mthphplink WHERE id=$id");
       $daten=mysql_fetch_array($bearbeiten);
       $daten[beschreibung]=str_replace("<br>", "", $daten[beschreibung]);
       
       print "<form action=\"index.php?style=edit&action=bearbeiten2&id=$id\" method=\"POST\">";
       print "<left>";
       //Tabelle
       print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
             print "<tr bgcolor=\"$tabelle\">";
             print "<td><div align=\"left\"><input type=\"text\" name=\"name\" value=\"$daten[name]\"></div></td>";
             print "<td><div align=\"left\">Visits = <b>$daten[visits]</b></div></td>";
             print "</tr> </table>";
       print "<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"$bordercolor\">";
             print "<tr>";
             print "<td> <textarea name=beschreibung cols=35 rows=6>$daten[beschreibung]</textarea></td>";
             print "</tr> </table>";
       print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
             print "<tr bgcolro=\"$tabelle\">";
             print "<td><div align=\"left\">Link <input type=\"text\" name=\"linkx\" value=\"$daten[linkx]\"></div></td>";
             print "<td><div align=\"left\"><input type=\"submit\" value=\"Update\"></div></td>";
             print "</tr> </table> <br><br>";
             print "</left>";
			 exit;
             }

//Datei updaten
  
if($action==bearbeiten2)
  {
      $beschreibun=nl2br($beschreibung);
      $beschreibung=str_replace("<br />", "<br>", $beschreibung);
      $anfrage = "update mthphplink SET name='$name', linkx='$linkx', beschreibung='$beschreibung', visits='$visits' WHERE id=$id";
      $ergebnis=mysql_query($anfrage);
      if (! $ergebnis)
         die ("error: ;".mysql_error() );
         print mysql_affected_rows();
         print (" alles o.k!");
         print $umleitung;
         exit;
     }
     
//Datei löschen

if($action==delete)
   {
       $bearbeiten=mysql_query("SELECT * FROM mthphplink WHERE id=$id");
       $dat1=mysql_fetch_array($bearbeiten);
        print "<form action=\"index.php?style=edit&action=delete2&id=$id\" method=\"POST\">";
        print "<left>";
        print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
             print "<tr bgcolor=\"$tabelle\">";
             print "<td><div align=\"left\">$dat1[name]</div></td>";
             print "<td><div align=\"left\">Visits = <b>$dat1[visits]</b></div></td>";
             print "</tr> </table>";
       print "<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"$bordercolor\">";
             print "<tr>";
             print "<td><div align=\"left\"> $dat1[beschreibung]</div></td>";
             print "</tr> </table>";
       print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
             print "<tr bgcolro=\"$tabelle\">";
             print "<td><div align=\"left\">Link $dat1[linkx]</div></td>";
             print "<td><div align=\"left\"><input type=\"submit\" value=\".delete\"></div></td>";
			 print "</tr>";
             print "</left>";
             print "</table> <br><br>";
			 exit;
       }

//Datei löschen bestätigen

if($action==delete2)
  {
      $bearbeiten="DELETE FROM mthphplink WHERE id=$id";
      $del=mysql_query($bearbeiten);
           if(!$del)
             {
                 print "error!";
                 }
           else
             {
                 print "alles o.k!";
                 print $umleitung;
                 exit;
                 }
             
      }
      
//Alle Dateien anzeigen
print "<center>";
mysql_query("$sortieren");
      while ($dat=mysql_fetch_array($dat3))
             {
			 print "<br><br>";
	         print "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
             print "<tr bgcolor=\"$tabelle\">";
             print "<td><div align=\"left\">$dat[name]</div></td>";
             print "<td><div align=\"right\">Visits = <b>$dat[visits]</b></div></td>";
             print "</tr> </table>";
             print "<table width=\"500\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"$bordercolor\">";
             print "<tr>";
             print "<td><div align=\"center\"> $dat[beschreibung]</div></td>";
             print "</tr> </table>";
             print "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
             print "<tr bgcolor=\"$tabelle\">";
             print "<td><div align=\"left\">Link $dat[linkx]</div></td>";
             print "<td><div align=\"right\"></div></td>";
             print "</tr> </table>";
             print "<table width=\"500\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"$bordercolor\">";
             print "<tr>";
             print "<td><div align=\"center\"><a href=\"index.php?style=edit&action=bearbeiten&id=$dat[id]\">| .configure |</a> -- <a href=\"index.php?style=edit&action=zurueck&id=dat$[id]\">| .back to zero |</a> -- <a href=\"index.php?style=edit&action=delete&id=$dat[id]\">| .delete |</div></td>";
             print "</tr> </table> <br><br>";

          }

//Datei einfügen und Tabelle

   print "<form action=\"index.php?style=edit&action=eintragen\" method=\"POST\">";
   print "<left>";
   print "<table width=\"500\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"$bordercolor\">";
         print "<tr>";
         print "<td><div align=\"left\"> Datensatz eintragen</div></td>";
         print "</tr> </table>";
         
   print "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
         print "<tr bgcolor=\"$tabelle\">";
         print "<td><div align=\"left\">Name: <input type=\"text\" name=\"name\"></div></td>";
         print "</tr> </table>";
         
   print "<table width=\"500\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"$bordercolor\">";
         print "<tr>";
         print "<td><div align=\"left\"><textarea name=\"beschreibung\" cols\"35\" rows=\"6\"></textarea></div></td>";
         print "</tr> </table>";
         
   print "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
         print "<tr bgcolro=\"$tabelle\">";
         print "<td><div align=\"left\">Link: <input type=\"text\" name=\"linkx\"></div></td>";
         print "<td><div align=\"right\"><input type=\"submit\" value=\"Eintragen\"></div></td>";
         print "</tr> </table> <br><br>";
         print "</left>";
         print "</form>";
         
?>
</font>
</body>
</html>

<?
if($foact=="true")
  {
      include("footer.inc");
      }
  else {
      include("leer.inc");
      }
?>

sorry wegen dem vielen text aber vielleicht fällt einem ja der fehler auf ....
 
PHP:
if($action==eintragen)

  {

      $beschreibung=nl2br($beschreibung);

      $beschreibung=str_replace("<br />", "<br>", $beschreibung);

      $id=$anzahl++;

      $anfrage="INSERT INTO mthphplink (id, name, linkx, beschreibung, visits)

                VALUES ('$id', '$name', '$linkx', '$beschreibung', '$visits')";

          mysql_query($anfrage, $link)

            or die ("Konnte Datei nicht hinzufügen :".mysql_error() );

          print "Datensatz erfolgreich eingetragen! Sie werden umgeleitet!";

          print $umleitung;

          exit;

          

      }

$anfrage="INSERT INTO mthphplink (id, name, linkx, beschreibung, visits)

da ist der fehler beim anlegen darfst du keine id angeben das macht bei autoincrement die sql_db

sprich:

$anfrage="INSERT INTO mthphplink (name, linkx, beschreibung, visits) VALUES ('$name', '$linkx', '$beschreibung', '$visits')";

und falls du die id wissen willst die sql verteilt die kann man abfragen:

$id = mysql_insert_id();
 
Zuletzt bearbeitet:
thx... es scheint zu funktionieren!!!
nur macht er jetzt immer irgendwelche ids 7, 12, 3 wie kriege ich es hin, das er sie durchnummerirert :)
oder geht das nicht?
 
nicht wenn die id automatisch vergeben werden

aber es braucht wirklich keiner durchnummerierte ids :)
 

Neue Beiträge

Zurück