Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 6939 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....

MFG, 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 ..
Ähnliche Inhalte
Netzwerke
gelöst Home-LAN optimieren (68)

Frage von Merris zum Thema Netzwerke ...

Windows Server
SQL-Errorlogs (3)

Frage von kellbidden zum Thema Windows Server ...

Windows Server
gelöst SQL Server 2016 User CALs auch für ältere SQL-Server-Version nutzbar? (3)

Frage von Jeiko71 zum Thema Windows Server ...

Datenbanken
SQL Cluster Node Configuration (7)

Frage von herrmanndominic zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

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