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, 6907 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 ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Monitoring
HP Monitoring - SQL auf localhost notwendig? (2)

Frage von hijacker99 zum Thema Monitoring ...

Windows Server
SQL-Errorlogs (3)

Frage von kellbidden zum Thema Windows Server ...

Microsoft
gelöst SQL Server 2012: Benutzerrechte ändern (2)

Frage von honeybee zum Thema Microsoft ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...

Linux
gelöst Schmaler Scrollbalken in Python-Anwendung (14)

Frage von indi955 zum Thema Linux ...