Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL - Optimieren

Frage Entwicklung Datenbanken

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

06.08.2006, aktualisiert 23:05 Uhr, 6900 Aufrufe, 4 Kommentare

Hallo miteinander,

ich bin grad dabei auf einer Homepage den Quellcode zu optimieren. Jetzt bin ich des öftern über folgende Zeilen gestolpert:






01.
$sql="SELECT * FROM `hp_archiv_bilder` WHERE id='".$_GET['id']."';"; 
02.
$result=mysql_query($sql); 
03.
$row=mysql_fetch_object($result); 
04.
 
05.
$sql="UPDATE `hp_archiv_bilder` SET hits='".($row->hits+1)."' WHERE id='".$_GET['id']."';"; 
06.
mysql_query($sql);
Ist es machbar aus 2 SQL - Statments eines wird?! Um beide Statments zusehen, alles im Kasten makieren!!!!


Gruß
Dani
Mitglied: Boy1980HH
06.08.2006 um 15:32 Uhr
Also die beiden von dir geposteten SQL's lassen sich nicht zu 1 SQL optimieren. Der eine ist ein SELECT, der andere ein Update und beide relasisieren bekanntlich ganz ganz unterschiedliche Aufgaben....

Anders würde/ könnte es ausschauen, wenn es sich um 2 gleiche SQL Statements (also 2 SELECTS z.B.) handelt....

Mit freundlichen Grüßen, Maik
Bitte warten ..
Mitglied: filippg
06.08.2006 um 16:34 Uhr
Hallo,

so ganz kann ich mich Maik nicht anschliessen.
Unter MS SQL würde ich da schnelle eine Stored Procedure für machen, die die beiden einzelabfragen enthält, und müsste dann halt nur einmal per PHP eine Anfrage an die DB stellen (und hätte dabei die Sicherheit, das Update nicht zu vergessen). In sofern bräuchte ich natürlich noch zwei SQL-Statements, aber nur einen Verbindungsaufbau zur DB.
Was da unter MySQL geht weiss ich nicht. Probier mal
$sql="UPDATE `hp_archiv_bilder` SET hits= hits+1 WHERE id='".$_GET['id']."'; SELECT * FROM `hp_archiv_bilder` WHERE id='".$_GET['id']."'"; (also zwei Statements in eine Anfrage, evlt. funktioniert das; so funktioniert auch SQL-Injection)

Filipp
Bitte warten ..
Mitglied: Biber
06.08.2006 um 19:35 Uhr
Moin Dani,

das SELECT-Statement vor dem UPDATE hat keinerlei sittlichen Nährwert.
Und der anschließende SELECT auf den gerade aktualisierten Satz macht nur Sinn, wenn Du irgendwas (in der Praxis: den aktualisierten Satz anzeigen) machen willst.

Das notwendige Statement reduziert sich, wie bereits von filippg geschrieben, auf
01.
$sql="UPDATE `hp_archiv_bilder` SET hits= hits+1 WHERE id='".$_GET['id']."';
Gruß
Biber
Bitte warten ..
Mitglied: Dani
06.08.2006 um 23:05 Uhr
Guten Abend,
wunderbar! Genau das habe ich gesucht! Jetzt hab ich auch 5 Zeilen => 2 gemacht. Danke an euch 3! Schönen Abend noch.....


Gruß
Dani
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Windows 10
gelöst Installationsproblem sql server 2014 auf windos 10 rechner (23)

Frage von jensgebken zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...