PHP id löschen

xXScreamXx

Grünschnabel
Hallo Leute,

folgendes problem: hab ein chat programmiert auf mysql basis und nun möchte ich immer den 5ten eintrag löschen..

bsp: einer mach den 6ten eintrag

1:a
2.b
3.c
4.d
5.e
6.f

nun möchte ich gern, dass die nachricht des erste gelöscht wird (a) komm einfach auf keine lösung, ich bleib grad hier stecken:
Code:
<?PHP

if ($button==" OK ") {

 include("db.php"); // mysql login
 
 $ip = ($_SERVER['REMOTE_ADDR']);
 mysql_query("INSERT INTO

 chat(text,username,ip)VALUES('$text','$username','$ip')");//
 
// hier fängts an !

$bla = $id - 5;
$sql = "DELETE FROM chat WHERE id = $bla"; 
$result = mysql_query($sql);

// 1st eintrag gelöscht 
 
 mysql_close();

 ?>


Ich hoff mal jemand weis eine lösung.. :confused:

Vielen Dank
greez
 
Zuletzt bearbeitet:
Wenn du hier nur 5 Einträge haben willst würde ich das so lösen:

Du speicherst tatsächlich nur 5 Einträge in die Datenbank mit

timestamp, ip, text, username

dann updatest du einfach den Eintrag in der Datenbank der den niedrigsten timestamp hat.

SQL:
UPDATE
	chat
SET
	text = '."text."',
    username = '".$username."',
    ip = '".$ip."',
    timestamp = '".time()."'
WHERE
	timestamp = '".$lowestTimestamp."';

Für die WHERE Klausel gibts vermutlich ein MySQL statment aber das müsste jetzt jemand anders hier anbringen das weiß ich nicht.
Ansonsten zuvor den niedrigsten timestamp via SELECT auswählen und in die variable $lowestTimestamp speichern.
Ich such mal noch nach dem MySQL statement.

EDIT

So recht fündig wurde ich nicht
Aber das hier könnte eventuell funktionieren:

SQL:
UPDATE
    chat
SET
    text = '."$text."',
    username = '".$username."',
    ip = '".$ip."',
    timestamp = '".time()."'
ORDER BY 
    timestamp ASC 
LIMIT 
    1;

Müsstest du probieren bin mir da nicht sicher ob das klappt.
Ist vermutlich auch nicht der schönste Weg da ich mir vorstellen kann, dass MySQL da eine elegantere Methode bietet den niedrigsten Wert auszuwählen.
 
Ich könnte dir auch sowas anbieten ;)
PHP:
<?
session_start();
include("mysql.php");

$senden 	= $_POST['senden'];
$text 		= $_POST['text'];


	$abfrage = "SELECT * FROM text WHERE id = '1'";  
	$ergebnis = mysql_query($abfrage);   
	$row = mysql_fetch_object($ergebnis); 
	$_SESSION['zeile5'] = "$row->zeile5"; 
	echo "$_SESSION[zeile5]<br>";
	$query = "UPDATE text SET zeile5 = '$text' WHERE id = '1'"; 
	mysql_query($query);
	
	
	
	$abfrage = "SELECT * FROM text WHERE id = '1'";   
	$ergebnis = mysql_query($abfrage);   
	$row = mysql_fetch_object($ergebnis); 
	$_SESSION['zeile4'] = "$row->zeile4"; 
	echo "$_SESSION[zeile4]<br>";
	$query = "UPDATE text SET zeile4 = '$_SESSION[zeile5]' WHERE id = '1'"; 
	mysql_query($query);	
	
	
	
	$abfrage = "SELECT * FROM text WHERE id = '1'";   
	$ergebnis = mysql_query($abfrage);   
	$row = mysql_fetch_object($ergebnis); 
	$_SESSION['zeile3'] = "$row->zeile3"; 
	echo "$_SESSION[zeile3]<br>";
	$query = "UPDATE text SET zeile3 = '$_SESSION[zeile4]' WHERE id = '1'"; 
	mysql_query($query);	
	
	
	
	$abfrage = "SELECT * FROM text WHERE id = '1'";   
	$ergebnis = mysql_query($abfrage);   
	$row = mysql_fetch_object($ergebnis); 
	$_SESSION['zeile2'] = "$row->zeile2"; 
	echo "$_SESSION[zeile2]<br>";
	$query = "UPDATE text SET zeile2 = '$_SESSION[zeile3]' WHERE id = '1'"; 
	mysql_query($query);	
	
	
	
	$abfrage = "SELECT * FROM text WHERE id = '1'";   
	$ergebnis = mysql_query($abfrage);   
	$row = mysql_fetch_object($ergebnis); 
	$_SESSION['zeile1'] = "$row->zeile1"; 
	echo "$_SESSION[zeile1]<br>";
	$query = "UPDATE text SET zeile1 = '$_SESSION[zeile2]' WHERE id = '1'"; 
	mysql_query($query);	
	
	

?>
<form name="chat" method="POST" action="">
    <input name="text" type="text" value="" size="50"><br>
    <input type="submit" name="senden" value="Senden">
</form>
 
Warum macht ihr das alle so kompliziert wenn auch einfach geht.

Frag doch einfach die ersten 5 autoincremt werte ab dann weißte auch welche du löschen mußt.

WHERE Feld1 in (Select Limit 5 ) ist dabei hilfreich.

Mfg Splasch
 
Zuletzt bearbeitet:
Zurück