php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.09.2004, 12:07  
Benutzer
 
Registriert seit: 20.09.2004
Beiträge: 90
pino
Standard Gelöschte Datensätze werden noch angezeigt

Hallöchen.

Es geht um folgendes Problem:

Ich habe eine Seite, die mir angelegte Kategorien in einer Liste ausgibt. Hinter jedem Kategoriennamen gibt es einen Link, um die Kategorie zu löschen. Ich frage das ganz oben im Script so ab:

PHP-Code:
if (isset($delete)) {
    
    
$sql="DELETE FROM events_category WHERE id='$delete'";
if (@
mysql_query($sql))
    {
        echo( 
"Wurde gelöscht." );
    }else{
    echo(
"

Es ist ein Fehler aufgetreten: " 
mysql_error() . "</p>");
    }
    
    } 
Danach geht der normale Code weiter. Komischerweise wird die Kategorie gelöscht aber noch in der Liste angezeigt, obwohl ja erst gelöscht wird und dann erst die While-Schleife kommt, die die Kategorien ausliest.

Wenn man die Seite dann neu läd, taucht die Kategorie nicht mehr in der Liste auf.

Ich möchte nach dem Klick auf "Kategorie löschen" keinen Zwischenschritt einbauen, der fragt, ob man wirklich löschen will, da man nur Kategorien löschen kann, die keine Inhalte haben.

Jemand eine Idee?

Viele Grüße

Pino
pino ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.09.2004, 12:11  
Erfahrener Benutzer
 
Registriert seit: 10.09.2004
Beiträge: 339
mkl0815
Standard

hallo,

an welcher stelle in deinem script liest du denn die kategorien aus der datenbank?
vor dem löschen?

mario
__________________
Problems with Windows : REBOOT
Problems with Linux : BE ROOT
mkl0815 ist offline  
Alt 21.09.2004, 12:21  
Benutzer
 
Registriert seit: 20.09.2004
Beiträge: 90
pino
Standard

Nein, das kommt danach. Das Script ist so aufgebaut:

Abfrage ob gelöscht werden soll

Abfrage ob hinzugefügt werden soll

Formular zum hinzufügen

Liste mit Links zum löschen


Komischerweise habe ich dasselbe Problem mit dem hinzufügen. Ich habe dort ein Formular mit einem Textfeld und einem Submit-Button. Die Kategorie wird angelegt aber erscheint nicht direkt in der Liste, obwohl die danach erst generiert wird.

Pino
pino ist offline  
Alt 21.09.2004, 12:29  
Gast
 
Beiträge: n/a
Standard

Du hast mit Sicherheit die SQL_Query ausgeführt, bevor du löscht und hinzufügst. Anders kann dieses Phänomen gar nicht auftreten.
 
Alt 21.09.2004, 12:33  
Benutzer
 
Registriert seit: 20.09.2004
Beiträge: 90
pino
Standard

Nein, hab ich nicht. Hier mein Script (HTML hab ich weggelassen, sonst wäre es so lang.)

PHP-Code:
<?
$sql
="SELECT * FROM events_category";
$result=mysql_query($sql) or die(mysql_error());


if (
$addcat == "true") {

$sql2="INSERT INTO events_category SET 
       catname='$catname'"
;
       
if (@
mysql_query($sql2))
    {
        
    }else{
    echo(
"

Es ist ein Fehler aufgetreten: " 
mysql_error() . "</p>");
    }




if (isset(
$delete)) {
    
    
$sql3="DELETE FROM events_category WHERE id='$delete'";
if (@
mysql_query($sql3))
    {
        echo( 
"" );
    }else{
    echo(
"

Es ist ein Fehler aufgetreten: " 
mysql_error() . "</p>");
    }
    
    }
    


<?



?>

<table width="500" cellspacing="0" cellpadding="0" border="0">
    <tr>
        <td bgcolor="#759185" valign="middle" width="20" height="20">
            [img]img/site/cube_headline.gif[/img]
        </td>
        <td bgcolor="#759185" valign="middle" width="480" height="20" class="headline">
            Kategorienverwaltung
        </td>
    </tr>
    <tr>
        <td colspan="2">


            <table width="500" cellspacing="0" cellpadding="5" border="0">
                <tr>
                    <td>
            <form action="index.php?go=my&nav=events&show=eventcat&addcat=true" method="post">
            Neue Kategorie anlegen: <input type="text" name="catname" class="eventcat"> <input type ="submit" value="Anlegen" class="eventdate">
            </form>

            
        </td>
    </tr>
    <tr>
        <td colspan="2">
            Bestehende Kategorien:

            Es k&ouml;nnen nur Kategorien gel&ouml;scht werden, denen keine Termine zugeordnet sind.


            <?
            
while ($data mysql_fetch_array($result)) {
            
            
$catname=$data["catname"];
            
            
$resultID = @mysql_query("SELECT COUNT(id) FROM events WHERE category='$catname'");
            
$total    = @mysql_result($resultID,0); ?> 
            
            <?echo $catname;?> | <?echo $total;?> <?if ($total == 1) {?>Termin<?} else {?>Termine<?}?>
            <?if ($total == 0) {?> | [url="index.php?go=my&nav=events&show=eventcat&delete=<?echo $data["]"Kategorie l&ouml;schen[/url]<?}?>
            <?if ($total >= 1) {?> | [url="index.php?go=my&nav=events&show=eventcat&cat=<?echo $data["]"Anzeigen[/url]<?}?>


            
            
            <?
            
}
            
?>
pino ist offline  
Alt 21.09.2004, 12:53  
Gast
 
Beiträge: n/a
Standard

Mann Mann Mann. Und was ist das gleich in der 3. Zeile?
Ist das nicht die Datenbankabfrage, auf die du dich am Ende der Datei beziehst?

Stell dir einfach vor, du erstellst am Anfang des Tages eine Abschrift deiner Einkaufsliste. Dann gehst du arbeiten und deine Freundin / Frau kauft ein. Am Abend kommst du nach Hause und ließt deiner Freundin vor, was noch eingekauft werden soll. Die Daten sind natürlich überaltet und stimmen nicht mehr.

Also, verschiebe deine Abfrage hinter den Bereich in dem du löscht oder hinzufügst.
 
Alt 21.09.2004, 12:55  
Benutzer
 
Registriert seit: 20.09.2004
Beiträge: 90
pino
Standard

Oh je! Danke, das hatte ich irgendwie übersehen. Ich bin immer von dem while ausgegangen, welches ja hinter dem löschen steht.

Manchmal steht man echt auf dem Schlauch.

Danke Danke Danke!

Pino
pino ist offline  
Alt 21.09.2004, 13:01  
Gast
 
Beiträge: n/a
Standard

No problem.

Hat mich auch mehr amüsiert als geärgert. :wink:
 
Alt 21.09.2004, 14:36  
Gast
 
Beiträge: n/a
Standard

Eine kleine Anmerkung:

if (@mysql_query($sql2)) ... gerade wenn etwas NICHT funktioniert, wobei der (Denk-)Fehler hier ja in Zeile 3 lag, sollte man @ weglassen, es unterdrückt Fehlermeldungen.

Ziel soll ja sein (zumindest denke ich mir das), Fehler zu vermeiden (respektive vorhandene zu beseitigen) - und nicht zu kaschieren oder zu verstecken
 
Alt 21.09.2004, 14:59  
Benutzer
 
Registriert seit: 20.09.2004
Beiträge: 90
pino
Standard

Ja, da hast du Recht. Ich habe das aus meinem Buch übernommen. Sollte ich mir wohl mal abgewöhnen.

Das Buch kann ich übrigens jedem empfehlen, der mit PHP&MySQL angfangen will. Es ist von Kevin Yank und heisst: PHP & MySQL.

Grüße

Pino
pino ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wieso wird nur ein Datensatz angezeigt? Minimi Datenbanken 14 08.02.2008 02:54
Bilder werden nicht angezeigt sawi PHP Tipps 2006 6 05.04.2006 13:53
[Erledigt] Seite wird nicht gleich angezeigt HTML, Usability und Barrierefreiheit 6 06.03.2006 15:49
[Erledigt] Zuviele Seiten werden angezeigt PHP Tipps 2007 5 24.12.2005 12:49
alte Bildversion wird angezeigt PHP Tipps 2007 19 30.11.2005 17:52
Warum werden manchmal die bilder nicht angezeigt? fadass HTML, Usability und Barrierefreiheit 7 09.10.2005 14:53
$_Get['bps'] wird nicht angezeigt... Matthiasnet PHP Tipps 2005-2 7 28.08.2005 15:09
php5 Seiten in htdocs werden nicht angezeigt. PHP Tipps 2005-2 26 25.06.2005 18:30
Bild nicht angezeigt?! scooter HTML, Usability und Barrierefreiheit 15 15.06.2005 10:37
Teile der Seite werden doppelt angezeigt PHP Tipps 2005 8 06.05.2005 15:10
[Erledigt] Bilder werden nicht richtig angezeigt PHP Tipps 2005 31 30.04.2005 18:29
Falsche Versionsnummer wird in phpinfo.php angezeigt Diet Datenbanken 10 20.02.2005 13:09
Die XML Seite kann nicht angezeigt werden c001130 HTML, Usability und Barrierefreiheit 0 20.01.2005 21:22
[Erledigt] Bild wird nicht angezeigt Server, Hosting und Workstations 7 03.09.2004 16:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_result(mysql_query(\select count(id) from events\),0);, php zeigt gelöschte datensätze noch an

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.