hi
ich hab mir ein ganz normales script gemacht, um etwas um einer datenbank auszulesen:
[PHP]<?php
$db=mysql_connect(„localhost“,„benutzername hier“,„passwort“)
or die („Zur Zeit kein Connect zum Datenbankserver!“);
mysql_select_db(„—“)
or die („Datenbank konnte nicht angesprochen werden“);
$anfrage=„SELECT * FROM gaestebuch ORDER BY id DESC“;
$ergebnis=mysql_query($anfrage)
or die („Fehler bei der Datenbankanfrage“);
$spaltenanzahl=mysql_num_fields($ergebnis);
while ($zeile=mysql_fetch_row($ergebnis)) {
print ($zeile[4]);
}
mysql_close($db);
?>[/PHP]
jedoch soll nur immer der oberste eintrag ausgelesen werden, und danach in eine andere spalte verschoben wird (ungen angehängt)
also z.b. spalte 1: text
dieser text wird gelesen, auf die seite eingefügt und dann sofort in eine andere spalte verschoben werden
natürlich hat die spalte 1 ganz viele zeilen, jedoch soll immer nur die oberste ausgelesen werden
die aktuelle id in einem separaten feld speichern und sie nach jedem löschen dekrementieren.
dann eine sql-abfrage schreiben, die auf den dekrementierten wert zugreift und anhand dessen die id dieses wertes löscht.
und ich versteh net genau wie du das meinst, also es soll wirklich nur der oberste eintrag ausgelesen werden, und von mir aus muss der auch nich verschoben, sondern gleich gelöscht werden, das wäre vielleicht sogar noch besser.
wie könnte ich jetz noch machen dass es nur zu einer bestimmten zeit ausgelesen wird?
Hier hast du mal nen kleineren Ansatz
(Voraussetzung ist eine Auto_increment Spalte namens id)
[PHP]
error_reporting(E_ALL);
/*
** Verbindung zur Datenbank
*/
//Obersten Datenreihe aus lesen
$qry = „SELECT id,text FROM table ORDER BY id ASC LIMIT 1“;
$qry = mysql_query($qry) or die(mysql_error());
// Daten in ein Array schreiben
while ($array = mysql_fetch_assoc($qry))
{
$daten[„id“] = $array[„id“];
$daten[„text“] = $array[„text“];
}
//Daten auf der Homepage ausgeben
echo $daten[„text“];
//Datensatz löschen
$qry = „DELETE FROM table WHERE id = {$daten[„id“]}“;
$qry = mysql_query($qry) or die(mysql_error());
//Datensatz am Ende der Tabelle wieder einfügen
$qry = „INSERT INTO table (text) VALUES (‚{$daten[„text“]}‘)“;
$qry = mysql_query($qry) or die(mysql_error());
[/PHP]
geht das evtl auch irgendwie ohne id? weil ich hab jetz schon über 10.000 sätze in der datenbank und da müsst ich ja jetz zu jeder spalte noch ne nummer dazumachen…
if ($tagnameeng==„sunday“) {
if ($uhrzeit<=„2300“) {
if ($uhrzeit>=„1700“) {
$db=mysql_connect(„localhost“,„>>>>benutzername hier<<<<<“,„>>>>>passwort<<<<<“)
or die („Zur Zeit kein Connect zum Datenbankserver!“);
mysql_select_db(„>>>>>datenbank name<<<<“)
or die („Datenbank konnte nicht angesprochen werden“);
$anfrage=„SELECT id,text FROM <<<<<<tabellenname>>>>>>> ORDER BY id ASC LIMIT 1“;
$ergebnis=mysql_query($anfrage)
or die (mysql_error());
ja was meinst du denn mit sinngemäß? ich hab das doch nur so verändert wie es mir hier beschrieben wurde am anfang is halt noch die if abfrage dass der text nur samstags von 17:00 - 23:00 uhr eingefügt wird und benutzer, passwort und tabellenname hab ich natürlich auf meinem server eingefügt