SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.01.2005, 18:13:23
DarsVaeda DarsVaeda ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 7
Fehlersuche

Hi

zuerst, ich weiß nicht wirklich obs ein mysql oder php problem ist, also bitte verschieben falls ich hier falsch bin
ausserdem entschuldige ich mich schonmal im vorraus für grausamen code, bin noch recht frisch in der materie ;)

ich habe zwei tabellen
catsort und cat
in cat werden kategorien genauer definiert
in catsort werden diese sortiert
die tabelle catsort hat dafür zwei spalten, top und sub
ist top = 0, ist sub quasi eine kategorie ganz oben
danach ist dann top = 1 und sub = 2
usw.
so erhalte meine sortierung

nun möchte ich eventuell eine kategorie löschen, kein problem ich muss also in cat die zeile löschen wo die kategorie definiert ist, also delete where id = wert
in catsort muss ich dann die zeile löschen wo sub = wert
auch kein problem
jetzt kann es ja aber sein das diese kategorie unterkategorien hat
die müssen natürlich auch gelöscht werden
wär so kein problem, müsste einfach die zeilen löschen wo top = wert
allerdings wüsste ich dann nicht was ich in der tabelle cat löschen soll
dafür ist also die erste sql-abfrage
sie liest die eventuellen unterkategorien aus und die werden dann gelöscht
ich hoffe der rest lässt sich so selbst erklären

nur funktioniert das nicht,
bzw. es funktioniert schon
die jeweiligen kategorien werden gelöscht, in beiden tabellen

mein problem ist: es werden noch weitere zeilen in den tabellen gelöscht
zum beispiel immer die zeilen in catsort wo top = 0
ich hab die werte schon geprüft
sie sind korrekt
ich hab schon geprüft wieviele zeilen nach einem delete betroffen sind, immer nur soviele wie zeilen gelöscht werden sollen
ich hab mir die sql-querys ausgebenlassen, stimmen auch

ich weiss einfach nicht wieso die anderen zeilen gelöscht werden?

vielen dank :)
dars

PHP-Code:
case "delete":

$sql "SELECT
         sub
        FROM
         products_catsort
        WHERE
         top = '"
.$_POST['id']."'
        ;"
;
$var = new Query($sql);
if(
$var->error()) {
 die(
"<pre>".$var->getError()."</pre>n");
}
while(
$delxid $var->fetch()) {
 
$sql1 "DELETE FROM
           products_cat
          WHERE
           cat_id = "
.$delxid['sub']."
          ;"
;
 
mysql_query($sql1) OR die(mysql_error());
}
$var->free();
unset(
$var);

$sql2 "DELETE FROM
          products_cat
         WHERE
          cat_id = '"
.$delid."'
         ;"
;
mysql_query($sql2) OR die(mysql_error());

$sql3 "DELETE FROM
          products_catsort
         WHERE
          sub = '"
.$delid."'
         ;"
;
mysql_query($sql3) OR die(mysql_error());

$sql4 "DELETE FROM
          products_catsort
         WHERE
          top = '"
.$delid."'
         ;"
;
mysql_query($sql4) OR die(mysql_error());

echo 
"Kategorie gel&ouml;scht!n";
break; 

Geändert von DarsVaeda (15.01.2005 um 18:16:18 Uhr)
Mit Zitat antworten
  #2  
Alt 15.01.2005, 18:22:48
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Wo kommt denn die Variable $delid her?
Mit Zitat antworten
  #3  
Alt 15.01.2005, 18:31:28
DarsVaeda DarsVaeda ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 7
oh ups da hab ich was vergessen
hatte was ausprobiert
bei delid muss eigentlich $_POST['id'] stehen
Mit Zitat antworten
  #4  
Alt 15.01.2005, 18:50:45
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
Zitat:
Original geschrieben von DarsVaeda
oh ups da hab ich was vergessen
hatte was ausprobiert
bei delid muss eigentlich $_POST['id'] stehen
funktioniert jetzt, wenn du das (überall) korrigierst?
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #5  
Alt 15.01.2005, 19:20:23
DarsVaeda DarsVaeda ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 7
nein das hab ich nur beim nach hier kopieren vergessen zu ändern
es funktioniert auch dann nicht

irgendwo müssen ja die delete befehle gegeben werden, aber wo?
weil wenn kein befehl gegeben wird dann kann ja auch nix gelöscht werden, oder?

das ist aber der einzige delete im ganzen script
Mit Zitat antworten
  #6  
Alt 15.01.2005, 19:38:55
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
verstehe ich das richtig:

du möchtest nur X löschen, aber auch Y und Z werden gelöscht?
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #7  
Alt 15.01.2005, 19:44:02
DarsVaeda DarsVaeda ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 7
ja

ich habe die tabelle catsort

top | sub

0 | 1
0 | 2
1 | 3
1 | 4
2 | 5
3 | 6
3 | 7

wenn ich jetzt kategorie 3 löschen möchte
dann müssen ja logischerweise 6 und 7 auch gelöscht werden, weil sie unter 3 liegen
wenn ich jetzt das script ausführe sind die zeilen
1 | 3
3 | 6
3 | 7
weg
soweit richtig
aber die zeilen
0 | 1
0 | 2
werden auch gelöscht

hab ichs verständlich erklärt?
Mit Zitat antworten
  #8  
Alt 15.01.2005, 19:59:33
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
jo, hast du.

kannst du mal den teil des scripts posten, der "case: "delete":" anspricht? ich habe da eine wage vermutung...
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #9  
Alt 15.01.2005, 20:03:51
DarsVaeda DarsVaeda ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 7
PHP-Code:
case "remove":
if(
$_SESSION['id'] == 0) {
  echo 
"<p>Bitte zuerst eine Kategorie ausw&auml;hlen!</p>n";
} else {
  echo 
"<form action=".$_SERVER['PHP_SELF']."?cat=delete method="POST">n";
  echo 
"<h3>L&ouml;schen!</h3>n";
  echo 
"<p>Wollen sie die Kategorie "".getcatname($_SESSION['id'])."" mit der ID "".$_SESSION['id']."" wirklich l&ouml;schen?</p>n";
  echo 
"Passwort: <input type="hidden" name="id" value="".$_SESSION['id']."" />n";
  echo 
"<input type="password" name="adminpass" />n";
  echo 
"<p><input type="submit" />n";
  echo 
"<input type="reset" /></p>n";
  echo 
"</form>n";
}
break; 
Mit Zitat antworten
  #10  
Alt 15.01.2005, 20:35:36
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Um eine Kategorie und alle Unterkategorien dieser zu löschen, würde es folgendermaßen machen:
PHP-Code:
<?php
    
function Delete($id)
    {
        
$sql "SELECT
                    sub
                FROM
                    catsort
                WHERE
                    top = $id"
;
        
$result mysql_query($sql);
        while(
$row mysql_fetch_array($result)) {
            
Delete($row['sub']);
        }
        
$sql "DELETE FROM
                    catsort
                WHERE
                    sub = $id"
;
        
mysql_query($sql);
    }
?>
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:03:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt