php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.08.2011, 18:52  
Neuer Benutzer
 
Registriert seit: 21.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
_-lupin-_ befindet sich auf einem aufstrebenden Ast
Standard Frage: delete query

Hi,

bin neu hier und habe mal eine Frage an die profis unter Euch.

Ich habe ein delete mysql_query geschrieben und wollt fragen ob es von der Syntax etc. richtig bzw. korrekt ist oder ob Ihr mir eine andere Art empfehlen würdet.

Wie gesagt es funktioniert wie es soll will nur wissen ob ich es richtig gemacht habe bezogen auf "richtig programmieren" -> hoffe Ihr versteht wa sich meine.

Erklärung:

über die ID des Artikels hole ich mir aus der Haupttabelle alle nötigen Informationen und erstelle mit diesen eine Delete query.

Hier der Quellcode:
PHP-Code:
                $artikelResult    =    mysql_query("
                                                SELECT        *
                                                FROM        artikel
                                                WHERE        artikelID = '$artikelID'
                                                "
)
                                                or die (
'MYSQL "query"-Abfrage Fehler:' mysql_error() );
                                                
                
$artikelDaten    =    mysql_fetch_array($artikelResult);
                
                
$artikelName                =    $artikelDaten['artikelName'];
                
$artikelMarkeID                =    $artikelDaten['artikelMarkeID'];
                
$artikelNummer                =    $artikelDaten['artikelNummer'];
                
$artikelCat1ID                =    $artikelDaten['artikelCat1ID'];
                
$artikelCat2ID                =    $artikelDaten['artikelCat2ID'];
                
$artikelCat3ID                =    $artikelDaten['artikelCat3ID'];
                
$artikelNewsOnOff            =    $artikelDaten['artikelNewsOnOff'];
                
$artikelPreisAnfrageOnOff     =    $artikelDaten['artikelPreisAnfrageOnOff'];
                
$artikelUrl                    =    $artikelDaten['artikelUrl'];
                
$artikelDoku                =    $artikelDaten['artikelDoku'];
                
$artikelRabatteWert            =    $artikelDaten['artikelRabatteWert'];
                
$artikelInternOnOff            =    $artikelDaten['artikelInternOnOff'];
                
$artikelGewicht                =    $artikelDaten['artikelGewicht'];
                
$parameterOnOff                =    $artikelDaten['parameterOnOff'];
                
$besOnOff                    =    $artikelDaten['besOnOff'];
                
                if(
$artikelNewsOnOff == '1')
                    {
                        
$newsQuery    =    ' AND artikelNews.artikelID = ' $artikelID '';
                        
$newsTable    =    'artikelNews, ';
                    }
                else
                    {
                        
$newsQuery    =    '';
                        
$newsTable    =    '';
                    }
                if(
$artikelPreisAnfrageOnOff == '0')
                    {
                        
$preisMengeQuery    =    ' AND artikelStaffelMenge.artikelID = ' $artikelID '';
                        
$preisMengeQuery    .=    ' AND artikelStaffelPreis.artikelID = ' $artikelID '';
                        
$preisMengeTable    =    'artikelStaffelMenge, artikelStaffelPreis, ';
                    }
                else
                    {
                        
$preisMengeQuery    =    '';
                        
$preisMengeTable    =    '';
                    }
                if(
$artikelUrl    ==    '1')
                    {
                        
$urlQuery    =    ' AND artikelUrl.artikelID = ' $artikelID '';
                        
$urlTable    =    'artikelUrl, ';
                    }
                else
                    {
                        
$urlQuery    =    '';
                        
$urlTable    =    '';
                    }
                if(
$artikelDoku    ==    '1')
                    {
                        
$dokuQuery    =    ' AND artikelDoku.artikelID = ' $artikelID '';
                        
$dokuTable    =    'artikelDoku, ';
                    }
                else
                    {
                        
$dokuQuery    =    '';
                        
$dokuTable    =    '';
                    }
                if(
$artikelInternOnOff == '1')
                    {
                        
$internQuery    =    ' AND artikelIntern.artikelID = ' $artikelID '';
                        
$internTable    =    'artikelIntern, ';
                    }
                else
                    {
                        
$internQuery    =    '';
                        
$internTable    =    '';
                    }
                if(
$parameterOnOff    ==    '1')
                    {
                        
$parameterQuery    =    ' AND artikelParameter.artikelID = ' $artikelID '';
                        
$parameterTable    =    'artikelParameter, ';
                    }
                else
                    {
                        
$parameterQuery    =    '';
                        
$parameterTable    =    '';
                    }
                if(
$besOnOff == '1')
                    {
                        
$besQuery    =    ' AND artikelBes.artikelID = ' $artikelID '';
                        
$besTable    =    'artikelBes, ';
                    }
                else
                    {
                        
$besQuery    =    '';
                        
$besTable    =    '';
                    }
                
mysql_query("DELETE        " $urlTable 
                                        
$internTable .
                                        
$dokuTable .
                                        
$newsTable 
                                        
$preisMengeTable .
                                        
$besTable 
                                        
$parameterTable "
                                        artikel
                            FROM        " 
$urlTable 
                                        
$internTable .
                                        
$dokuTable .
                                        
$newsTable 
                                        
$preisMengeTable .
                                        
$besTable 
                                        
$parameterTable "
                                        artikel
                            WHERE         artikel.artikelID = " 
$artikelID 
                                
$besQuery .
                                
$parameterQuery .
                                
$newsQuery 
                                
$preisMengeQuery 
                                
$urlQuery 
                                
$dokuQuery 
                                
$dokuQuery 
                                
$internQuery "
                                
                            "
)
                            or die (
'MYSQL "query"-Abfrage Fehler:' mysql_error() . '<br><br>' mysql_errno() ); 
_-lupin-_ ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.08.2011, 07:54  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Tabelle sichern und ausprobieren
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 22.08.2011, 17:11  
Neuer Benutzer
 
Registriert seit: 21.08.2011
Beiträge: 5
PHP-Kenntnisse:
Anfänger
_-lupin-_ befindet sich auf einem aufstrebenden Ast
Standard

was meinst du?
_-lupin-_ ist offline   Mit Zitat antworten
Alt 23.08.2011, 09:30  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

mach nen SQL-Export per phpmyadmin

und dann führ dein Script einfach aus .... dann siehst du doch, was passiert ^^
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 23.08.2011, 09:37  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Zitat:
Vorsicht: Ironie
Ehm, kann mir wer helfen?

PHP-Code:
<?php
     
echo 'Hallo Welt';
?>
Wisst ihr ob das funktioniert?
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 23.08.2011, 09:42  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

ja sicher Capfly .. ich wundere mich auch immer wieder, warum hier ein mehr oder weniger umfangreiches UNKOMMENTIERTES Script gepostet wird mit der Frage "funktioniert das ?" Erwartet der Poster denn ernsthaft, dass sich irgendwer dieses Script kopiert - auf SEINE Datenbank anpasst und ausführt? ... Warum wird das nicht mal schnell selbst gestartet und ordentlich debugt ?
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 23.08.2011, 09:57  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Also mich würde es foltern wenn ich nen Script geschrieben habe,
und es erst posten müsste und dann auf Antworten warten müsste,
als wenn ich es selbst schnell hochlade und selbst austeste.

Dazu Debugging, mach ich auch immer. Ist auch kein Problem.
Manche Poster sind merkwürdig, sie könnten sich ja mal XAMPP oder einen Server zulegen, sei es gemietet oder kostenlos. Ich meine, es gibt ja auch noch bplaced und andere free hoster.

Da sollte es ja wohl kein Problem sein, sein eigenes/kopiertes Script mal auszuprobieren.
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 23.08.2011, 10:08  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

ja -- oder man nimmt virtualbox und lässt ihn virtuell laufen, wenn man kein xampp unter windows installieren will .. virtualbox, dazu ne netboot-ISO von debian 5 und los gehts ...
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 23.08.2011, 10:25  
Erfahrener Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 108
PHP-Kenntnisse:
Fortgeschritten
eisenhans befindet sich auf einem aufstrebenden Ast
Standard Sourcecode Optimierung

Tja eagle275 und Capfly,

wer lesen kann, ist klar im Vorteil:

Zitat lupin:

Ich habe ein delete mysql_query geschrieben und wollt fragen ob es von der Syntax etc. richtig bzw. korrekt ist oder ob Ihr mir eine andere Art empfehlen würdet.

Wie gesagt es funktioniert wie es soll will nur wissen ob ich es richtig gemacht habe bezogen auf "richtig programmieren" -> hoffe Ihr versteht wa sich meine.

Nichts zu lesen von "Funktioniert das ..."

@lupin

Also auf jeden Fall würde ich den Source erstmal vernünftig einrücken und ausführlich kommentieren, mehr fällt mir gerad auch nicht ein ...
__________________
Webstammtisch Oldenburg
eisenhans ist offline   Mit Zitat antworten
Alt 23.08.2011, 10:31  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

na schön ... also das hier stößt mir extremst auf ...
PHP-Code:
" WHERE         artikel.artikelID = " $artikelID .$artikelID 
                                
$besQuery .
                                
$parameterQuery .
                                
$newsQuery 
                                
$preisMengeQuery 
                                
$urlQuery 
                                
$dokuQuery 
                                
$dokuQuery 
                                
$internQuery "  " 
das sieht irgendwie extrem unsauber aus - und normalisiert ist was anderes. wenn deine ArtikelID aus 9 Werten zusammengesetzt ist .. für die du String-Verkettungsoperatoren verwendest , aber dann auf einmal in der Abfrage keinen String-Begrenzer davor und dahinter schreibst ..

Begründe mal bitte, warum deine ArtikelID kein einfacher Atomarer Wert ist, sondern sich aus 9 Werten zusammensetzt - genauso wie der Tabellenname und so weiter ... das sieht mir arg nach verpeiltem Datenbank-Design aus

außerdem sieht korrektes SQL etwas anders aus ...

DELETE FROM Tabelle WHERE xyz ... da gibts zwischen Delete und FROM eigentlich keinen Grund für diese zusammengewürfelte Angabe .. oder soll nur die einzelne Spalte gelöscht werden
dann wäre allerdings ein Update-Statement die bessere Lösung .. denn Delete löscht den kompletten Datensatz

http://dev.mysql.com/doc/refman/5.1/de/delete.html

womit dann auch deine Aussage widerlegt wäre, der Code würde funktionieren, @eisenhans ... denn bei seiner Delete-Query MUSS er eigentlich zwingend nen mysql-error bekommen ... 10046(?) you have an error in your SQL-syntax near ....
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (23.08.2011 um 10:39 Uhr).
eagle275 ist offline   Mit Zitat antworten
Antwort


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
impossible where clause / MySQL Integer Query chunky PHP Einsteiger 4 11.04.2011 14:45
Eine Frage zum guten Code-Layout SilentSight JavaScript, Ajax und mehr 3 14.07.2010 09:18
[Erledigt] Frage zu JOIN Befehl und dem Auslesen desselben apo PHP Tipps 2010 11 13.06.2010 19:32
[Erledigt] MySql Mehrfach DELETE JackdasRipperl Datenbanken 3 24.03.2010 11:41
[Erledigt] Frage bzgl. Klassen und Objekten nBassCom PHP Tipps 2010 4 20.01.2010 21:43
[Erledigt] DELETE mit mehreren WHERE Angaben einer nicht festgelegten Tabelle Lollix Datenbanken 2 15.10.2009 09:54
[Erledigt] ob_end_flush() failed to delete and flush buffer. No buffer to delete or f Peterle PHP Tipps 2009 12 26.08.2009 23:33
[Erledigt] performance query frage rudygotya Datenbanken 16 08.08.2009 12:23
Query später weiter einschränken? MatzeMuc86 Datenbanken 9 14.04.2009 14:15
URL Frage Eclipse16V PHP Tipps 2009 8 23.02.2009 17:02
Hallo eine Frage in sachen Forensysteme spikytux HTML, Usability und Barrierefreiheit 11 03.01.2009 15:06
Dringende Frage odde PHP Tipps 2008 5 28.10.2008 19:03
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
select query durch if anweisungen splitten Datenbanken 6 06.09.2004 13:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php delete frage

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:47 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