php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-02-2005, 00:44
hannes-n
 Newbie
Links : Onlinestatus : hannes-n ist offline
Registriert seit: Feb 2005
Beiträge: 29
hannes-n ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy [MySQL 4.1] Datensatz nicht am "Ende", sondern mittendrin .. !?

Also folgendes Prob: Ich habe eine Tablelle in der News stehen. Man kann über Formular neue News reinschreiben (funzt), anschließend werden die "aktualiesierten" News ausgegeben (funzt).

Nun hab ich ein Script eingebaut mit dem ich News löschen kann (funzt). Die anschließende Ausgabe geht auch wunderbar .. aber wenn ich dann wieder eine News poste, erscheint sie nicht am "Ende", sondern an der Stelle, wo ich vorher die News gelöscht hab.


News add Script
PHP-Code:
<?php

$db
=mysql_connect("localhost","root","");
mysql_select_db("main_db");
$anfrage="SELECT * FROM News";
$ergebnis=mysql_query($anfrage);
$rows=mysql_num_rows($ergebnis);
mysql_data_seek($ergebnis,$rows);

if (isset(
$_POST["senden"])) {

function 
daten_reiniger($inhalt) {
    if (!empty(
$inhalt)) {
        
$inhalt strip_tags($inhalt);
        
$inhalt htmlspecialchars($inhalt);
        
$inhalt trim($inhalt);
        
$inhalt stripslashes($inhalt);
    }
    return 
$inhalt;
}
foreach (
$_POST as $key=>$element) {
    ${
"n_".$key} = daten_reiniger($element);
}

$n_news_text2=nl2br($n_news_text);

$anfrage="INSERT INTO News VALUES
    ('','$n_news_titel','$n_news_text2','$n_news_user')"
;

mysql_query($anfrage) or die(mysql_error());
}
    
mysql_close($db);
include 
'a_news.php';
?>
News löschen Script
PHP-Code:
<?php
$db
=mysql_connect("localhost","root","");
mysql_select_db("main_db");

$anfrage="DELETE FROM News WHERE ID='$news_id'";
mysql_query($anfrage) or die(mysql_error());

?>
Die News Tabelle hat eine ID Spalte (mit AUTO INCREMENT und ist auch PRIMARY KEY..). Hab schon versucht über mysql_data_seek ans "Ende" der Tabelle zu gelangen, damit er die News dahin setzt, aber Fehlanzeige. Das Script nimmt immer den "freigewordenen" Platz.

Die Variable $news_id bekommt ihren Wert über einen Link mit delete.php?news_id=...

Wahrscheinlich ist es banal, aber ich schnalls einfach nicht.

Danke an euch, die ihr euch Tag für Tag mit uns Dummis abgebt
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 23-02-2005, 07:15
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard Re: [MySQL 4.1] Datensatz nicht am "Ende", sondern mittendrin .. !?

Zitat:
Original geschrieben von hannes-n
Das Script nimmt immer den "freigewordenen" Platz.
Will heißen, es bekommt die ID des gelöschten Eintrags?

Wie liest du die Daten aus um sie anzuzeigen?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #3 (permalink)  
Alt 23-02-2005, 12:52
hannes-n
 Newbie
Links : Onlinestatus : hannes-n ist offline
Registriert seit: Feb 2005
Beiträge: 29
hannes-n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein. es bekommt eine fotlaufende id .. also nach 16 kommt dann auch 17, wenn ich 8 gelöscht hab. aber 17 steht an der stelle von 8 ..

aber mir ist heute morgen eingefallen, dass ich nicht nach id's auslese .. was aber durchaus sinnvoll wär, um dieses problem zu beheben

komisch find ich das trotzdem :/ dass er neue datensätze in "freie" plätze einfügt ..

(altes) script zum auslesen ..
PHP-Code:
    for($i=$anz-1;$i>-1;$i--) {
        
mysql_data_seek($ergebnis,$i);
        
$news=mysql_fetch_row($ergebnis);
                echo 
" bla bla bla .."
Mit Zitat antworten
  #4 (permalink)  
Alt 23-02-2005, 13:21
Titus
 PHP Master
Links : Onlinestatus : Titus ist offline
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
Titus ist zur Zeit noch ein unbeschriebenes Blatt
Wink

Zitat:
Original geschrieben von hannes-n
komisch find ich das trotzdem :/ dass er neue datensätze in "freie" plätze einfügt ..
Das ist nicht nur bei MySQL so, sondern bei jeder Gelegenheit, an der freie Speicherplätze (slack space; Überhang) entstehen:
Im Dateisystem, bei der String- und sonstigen RAM-Verwaltung in PHP und anderen Interpretersprachen - und eben in Datenbanken.
Die Methode, das ganze aufzuräumen (d.h. alle benutzten Speicherbereiche hintereinander zu hängen), heißt "garbage collection" (bei der Speicherverwaltung), "Defragmentieren" (im Dateisystem) oder "Optimierung" (in MySQL).
__________________
mein Sport: mein Frühstück: meine Arbeit:

Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
Mit Zitat antworten
  #5 (permalink)  
Alt 23-02-2005, 14:05
hannes-n
 Newbie
Links : Onlinestatus : hannes-n ist offline
Registriert seit: Feb 2005
Beiträge: 29
hannes-n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, ok .. das läuft darauf hinaus, das ich bei jedem löschen alle datensätze auslese, zwischenspeicher, die tabelle entleere, und die datensätze in neuer reihenfolge wieder hineinsetze?

es reicht doch aber sicherlich auch aus, wenn ich einmal im monat so eine aktion mache, oder? ich meine mein pc defragmentiert sich ja auch nicht bei jeder dateiverschiebung

danke
Mit Zitat antworten
  #6 (permalink)  
Alt 23-02-2005, 14:38
chansel0049
 Member
Links : Onlinestatus : chansel0049 ist offline
Registriert seit: Apr 2004
Beiträge: 294
chansel0049 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sortiere doch die Ausgabe!

ORDER BY id ASC
__________________
chansel0049
----------------------------------------------------
if you've reached the bottomline - dig further!
Übersetzer gesucht? http://www.babelport.com
Mit Zitat antworten
  #7 (permalink)  
Alt 23-02-2005, 14:44
hannes-n
 Newbie
Links : Onlinestatus : hannes-n ist offline
Registriert seit: Feb 2005
Beiträge: 29
hannes-n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, das hab ich schon gemacht .. funzt auch. will es dann sowieso auf sortierung nach datum umstellen ..

meine frage ist jetzt nur noch, ob es sinnvoll ist die news tabelle zu optimieren, bei ca. 20 beiträgen pro monat. oder macht es nischt??
Mit Zitat antworten
  #8 (permalink)  
Alt 23-02-2005, 15:34
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

d.h. 240 p.a. , dann kannst du frühestens alle 5 Jahre einmal optimize table aufrufen, früher lohnt sich nicht.
Mit Zitat antworten
  #9 (permalink)  
Alt 23-02-2005, 15:39
Offe1
 Member
Links : Onlinestatus : Offe1 ist offline
Registriert seit: Dec 2003
Beiträge: 478
Offe1 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

wie wäre ein:
ALTER TABLE `News` ORDER BY `id`

Gruß Offe
Mit Zitat antworten
  #10 (permalink)  
Alt 23-02-2005, 19:36
hannes-n
 Newbie
Links : Onlinestatus : hannes-n ist offline
Registriert seit: Feb 2005
Beiträge: 29
hannes-n ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, alle fünf Jahre .. ich glaub dann lass ich das

Nur zum Verständnis:
Zitat:
Original geschrieben von Offe1
ALTER TABLE `News` ORDER BY `id`
ALTER TABLE ändert die Struktur der Tabelle, soweit klar, ich dachte bloß immer, man kann damit nur Spalten hinzufügen und wegnemhen etc .. Klingt an sich echt gut und logisch , danke office1!

Damit hat sich dieses thema dann wohl endgültig erledigt, es sei denn jmd hat funktionelle einwände gegen die Optimierung per ALTER TABLE ..

Danke an alle nochmal. Aber ich werd ich bestimmt noch öfters nerven
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:16 Uhr.