Uninteressantes von einem Anwendungsentwickler aus Linse
 

Beiträge in der Kategorie "Programmieren"

 
Seite 4 von 4

MySQL - Doppelte Datensätze abfangen

Kategorie "Programmieren" Programmieren  Verfasst am 01.06.2009 01:17 01.06.2009 01:17  0 Kommentare 0 Kommentare  

Manchmal hat man das Problem beim speichern von Einstellungen in der Datenbank, dass vorher überprüft werden muss, ob es diesen Datensatz nicht schon gibt.

Genau vor so einem Problem stand ich bei meiner Rechteverwaltung. Die Rechte werden dort mit Checkboxen gesetzt. Nun wollte ich bearbeiten und neu erstellen aber nicht getrennt Programmieren, sondern auf einem Rutsch.

Das bedeutet, man müsste erst prüfen, ob nicht schon ein Datensatz existiert. Es gibt dort zwei Möglichkeiten, ein weiteres Query zu vermeiden.
 

Möglichkeit 1: ON DUPLICATE KEY
Die erste, und eigentlich auch konventionelle Lösung ist die ON DUPLICATE KEY Klausel.

INSERT INTO counter 
   (`visitor`, `date`,`hits`)
VALUES
   ('127.0.0.1','2009-06-01', 1)
ON DUPLICATE KEY UPDATE
   hits=hits+1;

Dabei werden die Schlüssel der Tabelle überprüft. Ist bei diesem Beispiel die IP Adresse 127.0.0.1 schon vorhanden, wird der hits-Counter um eins hochgezählt.
 

Möglichkeit 2: Subquery
Die zweite Möglichkeit ist mit einem doppelten Subquery zu überprüfen, ob es den Datensatz schon gibt.

INSERT INTO table
   (name)
   SELECT
      distinct('lala')
   FROM 
      adressliste
   WHERE
      NOT EXISTS (
         select name from adressliste where name = 'lala'
      )

Bei dem insert wird mit einem "dummy"-Select der zukünftige Inhalt des Datensatzes ('lala') "ausgelesen". Dieser Inhalt wird unter der Bedingung "Du bist nicht schon in der Tabelle enthalten", welches mit einem Sub-Subquery überprüft wird, an das insert übergeben.

Die Prüfung passiert dort mit der NOT EXISTS Klausel. Alles was also nicht bei dieser Abfrage raus kommt, wird in die Tabelle eingefügt.

Möglichkeit Nr. 2 ist allerdings nur bei Tabellen die keine Schlüssel definiert haben sinnvoll. (Jeder der eine Tabelle ohne Schlüssel erstellt gehört verprügelt.)

 

Referenz Karten sind angekommen

Kategorie "Programmieren" Programmieren  Verfasst am 22.05.2009 21:53 22.05.2009 21:53  2 Galeriebilder 2 Galeriebilder  6 Kommentare 6 Kommentare  

Heute sind die Referenz Befehlskarten angekommen. :)

 

Terrashop Sonderaktion - Referenz Befehlskarten

Kategorie "Programmieren" Programmieren  Verfasst am 19.05.2009 11:31 19.05.2009 11:31  1 Kommentar 1 Kommentar  

Im Moment gibt es im Terrashop Referenz Befehlskarten für viele verschiedene Sprachen für einen Euro!

Das sind 30x21cm große doppelseitige Karten mit Infos und Hilfen über verschiedene Sprachen. Beispielsweise Syntax, Befehle und Kontrollstrukturen. Die Karten sind laminiert, sodass die Abwischbar sind, und zum Beispiel mit Folienstiften drauf Rumgemalt werden kann.

Verfügbare Sprachen:

  • HTML & CSS
  • C# .NET
  • XSLT
  • Oracle PL/SQL
  • XQuery & XPath
  • PHP
  • T-SQL
  • Visual Basic .NET

Auf der Arbeit haben wir erst mal ne Großbestellung gemacht. Wir sind sogar über den Bestellwert von 20€ rüber gekommen, sodass und alles Versandkostenfrei kommt. ;)

Habe mir von PHP & HTML/CSS jeweils zwei Karten bestellt. Die kommen neben die Domain Weltkarte an die Wand. Zwei von jeder, da die Karten ja doppelseitig sind.

 

Blog Datenbank - Ähnliche Beiträge auslesen

Kategorie "Programmieren" Programmieren  Verfasst am 24.04.2009 23:45 24.04.2009 23:45  0 Kommentare 0 Kommentare  

Bis eben gerade habe ich mich mal wieder sehr intensiv mit SQL Abfragen beschäftigt, und einen Weg gefunden diesen ganzen "Ähnliche Artikel" Kram mit einem einzigen Query auszulesen. :)

Auf http://dev.mysql.com bin ich auf zwei sehr interessante Features gestoßen, die ich bis jetzt noch nicht kannte. Und zwar die Funktion GOURP_CONCAT() und den Operator IN. [...] Weiterlesen...

 

Kopf mit Wand Erlebnis

Kategorie "Programmieren" Programmieren  Verfasst am 30.03.2009 23:14 30.03.2009 23:14  1 Kommentar 1 Kommentar  

Ich habe soeben nach zirka 4 Monaten endlich heraus gefunden, wieso die Ajax Funktionen meines CMS nach kurzer Zeit abgekackt sind.

Wie man sowas heraus findet? Ganz einfach. In jede Abfrage und Bedingung ein echo mit der Beschreibung packen. Sieht dann beim Seitenaufruf so aus:

  • cookie id vorhanden
  • user verloren - suche nach session id
  • user gefunden
  • last action aktualisiert
  • cookie erneuert

 
Woran es nun lag? Ganz einfach! Es fehlte überall ein $users->init(); am Anfang der AJAX File.

Somit kam der Authentifizierungsvorgang nur bis "Aaaah! Ich hab das Session verloren! *panik*". Hat aber über das Cookie kein neues Session erstellt. So lief jede Ajax Anfrage die nach dem Ablauf einer Session gestellt wurde ins leere.

So einfach kann es sein...

 

Zwei Querys in einer

Kategorie "Programmieren" Programmieren  Verfasst am 18.02.2009 20:41 18.02.2009 20:41  3 Kommentare 3 Kommentare  

Heute hat die Arbeit mal wieder richtig Spaß gemacht. :D

Wir hatten das Problem, dass wir Daten aus zwei verschiedenen SQL Abfragen in einer Tabelle ausgeben wollten. Erst hatten wir die Idee, alles in ein Array zu schieben, und dann zu Sortieren. Aber das fand ich irgendwie doof...

Dann viel mir ein Anwendungsfall aus der Schule (jaha, Schule => wichtig ;) ) wieder ein, bei dem man zwei verschiedene Results mit einem Schlüsselwort verbinden konnte. Nur viel mir patu das Wort nicht ein! Also musste nach fast 30min dev.mysql.com Sucherei mal wieder ein Bekannter her halten. :) Danke dir, bmk. ;)

Das ist dabei rausgekommen: [...] Weiterlesen...

 

Das ultimative md5 Wörterbuch

Kategorie "Programmieren" Programmieren  Verfasst am 16.02.2009 15:18 16.02.2009 15:18  3 Kommentare 3 Kommentare  

Für Programmierer und Hacker unverzichtbar: Das Deutsch - md5, md5 - Deutsch Wörterbuch im PDF Format. Über 900 Seiten an Md5 Hashes, zum nachschlagen.

Zum Download

Ich finde das das eine Hammergeile Idee ist. :D

So. Und nun um die Autoren zu Zitieren: Der "gewinner"-Hash ist nicht dabei. *g*
Also: Schön auswendig lernen. ;)

Quelle: http://www.yaablog.de

 

Alte Programmierer Sünden

Kategorie "Programmieren" Programmieren  Verfasst am 22.01.2009 11:12 22.01.2009 11:12  0 Kommentare 0 Kommentare  

Hab grad mal wieder einen Man!-wie-kann-man-nur-so-etwas-tun!?-Moment gehabt.

Und zwar habe ich über das Rechtesystem was hinter meiner Website hängt rüber geschaut. Da werden echt um ein Recht zu prüfen 8 Querys abgesetzt! Ja! 8! Manchmal wundert man sich über sich selbst...

Naja. Nun hab ich das Teil neu gebaut, und neben bei noch Gruppenvererbung mit integriert. Jetzt sind es pro Abfrage min 1 Query, max 2 Querys. Pro Seitenaufruf kam man vorher auf 250 Querys, jetzt sind es nur noch 65. :D

Schon ein kleiner Unterschied. ^^

 

Remote System Explorer für Eclipse

Kategorie "Programmieren" Programmieren  Verfasst am 13.01.2009 22:56 13.01.2009 22:56  0 Kommentare 0 Kommentare  

Ich bin von einem Kumpel auf das Addon "Remote Explorer" für Eclipse aufmerksam gemacht worden. Damit kann man Eclipse beibringen, sich über verschiedenste Protokolle auf Fremden Rechnern anzumelden. Man Arbeitet also zum Beispiel direkt auf einem Webserver. [...] Weiterlesen...

 

open_basedir und FCK Editor

Kategorie "Programmieren" Programmieren  Verfasst am 10.01.2009 00:53 10.01.2009 00:53  0 Kommentare 0 Kommentare  

Ich bin ja vor kurzem auf einen eigenen Server umgezogen. Der hat nun eine etwas strengere PHP Konfiguration, um Missbrauch zu verhindern, auch wenn man meine Website mal knacken sollte.

Ich nutze die PHP Option open_basedir, um zu verhindern, das Dateien außerhalb des Document Roots der Domain mit PHP Dateisystem Funktionen angesprochen werden können. So werden nur Dateisystemoperationen in den dort definierten Verzeichnissen und dessen Unterverzeichnissen zugelassen.

Nur seit der Einführung von open_basedir auf meinen Webserver funktioniert der Bilder Upload vom FCK Editor nicht mehr. Nach langem hin und her, habe ich auch herraus gefunden, woran es lag. [...] Weiterlesen...

Seite 4 von 4

Tag Cloud

28c3   3D   ASCII   Akismet   Allgemein   Animation   Apache   Arbeit   Arch Linux   Archos 5   Asterix & Obelix   Audio   Auto   BOINC   Bash   Bitlbee   Blog v2.0   Bluetooth   Bodenwerder   Bouncer (BNC)   Bundestagswahl 09   Bücher   CCC   Chromium   Comics   Computerspiele   Content Managment System   Creative Commons   CyanogenMod   Cybton   DAU Alarm   DLRG   Datenbanken   Datenschutz   Debian   Deutsches Rotes Kreuz   Domains   Drucken   EZFlash Vi   Eclipse   Eingabegeräte   Ekelhaft   Email   Essen   Ethernet   Evernote   ExtJS   Facebook   Fail2Ban   Fanartikel   Feiertage   Fernsehn   Firefox   Flash   Flattr   Fotografie   Fritz!Box   Fun   Fußball   GEZ   GPS   Gameboy Advance   Games   Git   Gnome   Google   Google Android   Google Android Hacking   Google+   Grafiken   Grand Theft Auto IV   HTC   HTC Desire Z   HTML   Handhelds   Handy   Handy Apps   Hardware   Hardware Hacking   Homebrew   ICQ   IRC   ImapFilter   Internet   Internet Explorer   Internet Relay Chat (IRC)   Internetzensur   Java   JavaScript   JeeGeek   Justiz   Kino   Konzert   Kultur   Kumpels   Legend of Zelda   Linux   Linux Mint   MS SQL Server   Marilyn Manson   Microsoft .NET   Minecraft   Mobile   Mozilla   Music Player Daemon (MPD)   Musik   MySQL   NPD   Natur   Netbeans   Netbooks   Netzwerk   Nintendo   Nintendo DS   Nintendo DSi   Nintendo Wii   Notebook   OpenOffice   OpenOffice Impress   OpenWRT   PC Hardware   PHP   Pandora   Papierkorb   Patentrecht   Pidgin   Piratenpartei   Piwik   Politik   Privat   Programmieren   Projekte   PulseAudio   QR-Code   RSS   Rammstein   Root   SD-Karte   SOGo Scalable OpenGroupware   SSH   SVN   Schlüsselband   Schule   Seagate Freeagent Dockstar   Server   Serversicherheit   Sesamstraße   Shellscripting   Shopping   Shortlinker   Skype   Social Networks   Software   Spam   Spenden   Spongebob   Straßenverkehr   Support   TV   Tablets   Technik   Textverarbeitung   Thunderbird   Truecrypt   Twitter   Typo3   UMTS   USA   USB   Ubuntu   Underground Shopping   Urheberrecht   Urlaub   VMWare   VNC   Vereine   Verkaufen   Verstärker   Videorecorder   Viren und andere Schädlinge   Virtual Box   Vorratsdatenspeicherung   WLAN   Wahlen   Webspace   Wehrdienst   Weserbergland   Willkommen   Windows   Windows 7   X11   XFCE   XML   XStylus   Zeitschriften   Zensur   bind9   ffmpeg   ncurses   netcup   openSSL   r0ket   sim4000.de   vim   Überwachung   Überwachungsstaat   üäx.de   1337