18.09.13 (Allgemein)
Manchmal kommt man auf die seltsamsten Ideen z.B. das es möglich sein müsste zu einer Spalte die Tabelle zu finden.
So brauchte ich z.b. Den Namen zu einer Spalte einer unbekannten Tabelle beim Debuggen eines fremden Projekt.
Nach etwas googlen ist folgender Code dabei raus gekommen:
SELECT c.TABLE_SCHEMA AS Datenbank, c.TABLE_NAME AS Tabellenname, c.COLUMN_NAME AS Spalte
FROM INFORMATION_SCHEMA.TABLES t
JOIN INFORMATION_SCHEMA.COLUMNS c ON t.TABLE_CATALOG = c.TABLE_CATALOG
AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
AND t.TABLE_NAME = c.TABLE_NAME
WHERE COLUMN_NAME = "YOURSEARCHCOLUMN"
LIMIT 0 , 30
Dabei ist bei COLUMN_NAME der Wert „YOURSEARCHCOLUMN“ durch den Gewünschten Spaltennamen zu ersetzen.
Keine Kommentare »
03.06.13 (Allgemein)
Teil 1 Hostersuche
Heute widme ich mich mal den Einsteigern unter euch häufig werde ich gefragt wie man seine eigen Homepage erstellt was ist des beste Hoster, muss ich wirklich sooo viel zahlen?
Als erstes die Letzte Frage der Rest Kommt in einen Anderen Teil:
….muss ich wirklich sooo viel zahlen?
Nein!
Natürlich sind „die Größen nicht die Günstigsten“ jahrelange Erfahrung und eine gefestigte Marktposition erlauben 1&1, Strato und Co dieses Preisniveau. Adlerdings gibt es auch kleine Hoster bei denen der Service weniger kostet oder gar Kostenlos ist.
Eine Kleine Auswahl liste ich nun hier auf:
- bplaced.net Kostenloser Webspace mit FTP, MYSQL, und PHP immer in sehr aktueller Form.
– Keine Sockets (braucht man um Verbindung zu anderen Seiten aufzubauen z.B. für Updates).
+ Deutsche Seite deutscher Support.
+ Software immer aktuell.
# Wenig Werbung nur im Login und auf den Fehlerseiten.
Keine Kommentare »
21.01.13 (Allgemein)
Fangen wir also an:
Man öffne eine Datei mit dem Störenden Inhalt in Notepad++ …
und markiere nun den Absatz der der uns stört:
Danach verwendet man das suchen und ersetzen Tool am einfachsten durch die Tastenkombination [STRG] + [H].
Nun sehen wir unseren selektierten Text in der “Suche nach” Textbox.
Jetzt wählen wir noch den Tab “In Dateien Suchen” und klicken als
erstes auf “Ordner der akt. Datei” und da wir ja das gesamte Projekt
durchsuchen möchten auf “Unterverzeichnisse”.
Selbstverständlich könnt ihr den passenden Pfad auch manuell heraussuchen.
Den Suchmodus stellt man am besten auf “Normal” damit keine ungewollten Ersetzungen stattfinden.
Und am ende habt ihr erfolgreich euer Projekt von den ungewollten
Einträgen befreit und das trotz Leerzeichen Tabs und Zeilenumbrüche.
Beachtet aber bitte das immer genau dieser String gesucht
wird, sprich es klappt nicht wenn ein Leerzeichen mehr oder weniger oder
sonst eine Kleinigkeit anders ist!
1 Kommentar »
11.02.12 (Tutorial´s)
Wer mal mit C oder C++ gearbeitet hat kennt ein ähnliches Modell bereits die Pointer. Allerdings da PHP ja eine Scriptsprache ist stellt es keine Speicheradressen zur Verfügung.
Dafür haben wir aber Referenzen die zwar keinen Performance voreilt verschaffen dafür aber einen ähnliche Möglichkeiten zur Manipulation der Variablen bietet (von der Arithmetik mal abgesehen).
ein kleines Beispiel habe ich mal hier zusammengestellt ziel war es eine Wrapperklasse für Strings zu erstellen .
global $counter, $memory;
$counter = 0;
$memory = array();
function &getNewReference($dataType) {
global $counter;
global $memory;
do {
$name = 'RefKey'.$counter++;
} while (isset($memory[$name]));
$memory[$name] = $dataType;
if(is_object($dataType) && in_array('setRefKey', get_class_methods($dataType))) {
$dataType->setRefKey($name);
}
return $memory[$name];
}
class String{
private $value;
private $refKey;
public function setRefKey($name) {
$this->refKey = $name;
}
public function __construct($value = null){
$this->value = $value;
}
public static function &string($value = null) {
// Übergibt eine Referenz auf die Funktion getNewReference,
// die ihreseits eine Referenz auf das $memory Array übergibt
$string = &getNewReference(new String($value));
return $string;
}
public function __toString() {
return (string) $this->value;
}
public function __destruct() {
global $memory;
// Kann sofort zerstört werden da keine Referenz.
if($this->refKey === null) {
return;
}
// Prüfen ob ein Object gleichen types in die referenz geschrieben wurde.
if($memory[$this->refKey] instanceof self) {
// Neuen object alten Referenzkey übertragen.
$memory[$this->refKey]->setRefKey($this->refKey);
// Ist es eine skalaren Variable ("Normaler Datentyp" string, int , bool, usw..)".
} else if(is_scalar($memory[$this->refKey])){
// Neuen wert aus der Referenz auslesen.
$value = $memory[$this->refKey];
// Eigene Classe ermittel (für extended).
$class = get_class($this);;
// Neues Object erzeugen und in das Array mit den Referenzen schreiben
$memory[$this->refKey] = new $class($value);
// Neuen object alten Referenzkey übertragen.
$memory[$this->refKey]->setRefKey($this->refKey);
}
}
}
$foo = & String::string();
$foo = 'Hallo Welt!';
$bar = & String::string();
$bar = 42;
var_dump($foo);
echo $foo.' Der sinn des Lebens ist '. $bar;
2 Kommentare »
11.01.12 (Allgemein)
In CSS gibt es viele Deklarationen die mehrere Werte nutzen, die sich auf unterschiedlichen Seiten des Boxmodells beziehen z.B.:
• margin
• padding
• border-width
Da ich nun auch gerne vergesse welcher Wert nun zu welcher Seite gehört, habe ich mal einen kleinen Merksatz mit Anschauungsmaterial erstellt.
Am Anfang das einfachste ein (1) Wert.
Da nur ein wert zu Verfügung steht ist dieser für alle Seiten gleich
Also ist:
p {
margin:10px;
}
eine vereinfachte Darstellung von:
p {
margin:10px 10px 10px 10px;
}
Nun kommen wir schon zu zwei (2) Werten.
p {
margin:10px 5px;
}
Der Trick funktioniert wen wir oben beginnen zu zählen und dann im Uhrzeigersinn weiterzählen. Somit würde oben Wert Eins und Rechts Wert Zwei Stehen.
Doch wie belege ich nun die restlichen zwei Seiten?
Dieses ist ganz einfach ich nehme einfach immer die gegenüberliegende Seite, so ergibt sich ganz automatisch:
- Wert Eins für Oben und Unten
- Wert Zwei Rechts und Links
Der Trick funktioniert übrigens auch für drei Werte
p {
margin:10px 5px 15px;
}
Allerdings bleibt nach dem Weiterzählen nur die linke Seite ohne Wert also kann auch nur darauf gespiegelt werden:
- Wert Eins für Oben
- Wert Zwei Rechts und Links
- Wert Drei für Unten
Als letztes alle vier Werte. Hier muss nicht mehr gespiegelt werden sondern einfach nur gezählt
p {
margin:10px 5px 15px 20px;
}
Somit ergibt sich dann folgendes Bild:
- Wert Eins für Oben
- Wert Zwei Rechts
- Wert Drei für Unten
- Wert Vier für Links
Ich hoffe ich konnte euch mit meinen Tutorial ein wenig helfen.
Keine Kommentare »
24.08.11 (Allgemein)
Google mit schwarz hässlich…
Google ist laangweilig…
Ich mag das neue aussehen der Website nicht…
Wer diese oder ähnliche Probleme hat, kann geholfen werden: Die Lösung heißt zu mindestens im Mozilla Firefox und Google Chrome Stylish. Einfach dieses Addon installieren und sich über benutzerdefiniertes Aussehen der Webseiten freuen.
Egal ob Google, das Lieblings Forum oder vielleicht sogar die Konfigurationsseite ihres Routers alles lässt sich damit anpassen.
Und Hier noch gleich ein Link zu einen Style, der die meiner Meinung hässlich schwarze Navigationsleiste von Google aufhübscht: userstyles.org – Google navigation bar – revert to light theme.
Falles noch Bildmaterial gewünscht oder Fragen offen sind einfach einen Kommentar dalassen.
Keine Kommentare »
03.08.11 (Allgemein, VB.Net)
Dictionary Sind äußert Praktisch wenn man gerade ein KeyValuePair Benötigt.
Sprich einen beliebigen Index und ein damit verknüpfte Value.
In diesen beispiel zeige ich euch wie Einfach es ist in diesen Konstrukt sogar Rückwärts zu suchen:
Public Shared Function GetKeyValuePairFromValue(ByVal sValue As String, _
ByVal CheckDictionary As Dictionary(Of Integer, String)) As _
KeyValuePair(Of Integer, String)
Return CType((From kvp As KeyValuePair(Of Integer, String) In _
CheckDictionary Where kvp.Value = sValue.Trim() Select kvp).First(), _
vKeyValuePair(Of Integer, String))
End Function
Keine Kommentare »
07.07.11 (Windows)
XP-Modus Bessere Optik dank 24bit Farbtiefe
Viele werden es vielleicht schon gesehen haben, das der XP-Modus vom Windows Virtual PC
einfach Häslich aussieht.
Alles wirkt irgendwie verpixelt.
Doch was ist Schuld dadran?
Die 16 bit Limitierung die von der Zugriffsmethode auf den XP-Modus, nämlich RDP (Remote Desktop Protocol) kommt.
Das lässt sich leider nicht ganz abschalten den 32 bit sind nicht möglich, mit einen Trick aber wenigstens 24 bit und das sieht schon mal deutlich besser aus.
Dazu müsst ihr bloß ein par Richtlinien konfigurieren und wie das funktioniert erkläre ich jetzt in dieser schritt für schritt Anleitung.
- Start und Ausführen dort gpedit.msc eingeben.
- Nun sich dur volgende punkte durchwählen: Computerkonfiguration – Administrative Vorlagen – Windows-Komponente – Terminaldienste – Maximale Farbtiefe einschränken
- — Die Richtlinie aktivieren und 24bit auswählen.
Nun sollt euer Windows deutlich besser aussehen und etwas arbeitsfreundlicher sein.
Keine Kommentare »
30.06.11 (VB.Net)
Wer Diese Meldung bekommt möchte wahrscheinlich mit process.start(C:\Temp\MeinBild.tif) eine Datei in seien VB.NET Project öffnen.
Wenn aber Kein Programm oder nur das Windows-Standardprogramm mit dem Dateityp verknüpft ist bekommt man diese Fehlermeldung.
Folgender Code zeigt wie es richtig geht:
Dim proc As New Process
Dim ProcessStartInfo As New ProcessStartInfo
ProcessStartInfo.ErrorDialog = True
ProcessStartInfo.UseShellExecute = True
ProcessStartInfo.FileName = "C:\Temp\MeinBild.tif"
proc.StartInfo = ProcessStartInfo
proc.Start()
Keine Kommentare »
23.06.11 (Allgemein)
Wer keine umständliche Toolbar mochte, und trotzdem mit nur einem Click, eine Übersetzung der Webseite auf der er sich gerade befindet. Kann mit folgender Zeile als Lesezeichen schnell die aktuelle Seite Übersetzen:
Gogle translate Bookmarklet
javascript:window.location='http://translate.google.de/translate?js=n&prev=_t&hl=de&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=de&u='+window.location;
Keine Kommentare »