Jump to content
powie.de Tech Forum

maui muc

Members
  • Content Count

    38
  • Joined

  • Last visited

    Never

Community Reputation

0 Neutral
  1. maui muc

    "" als NULL interpretieren

    Dieser Query mach mehr oder weniger was ich will: INSERT INTO table SET name=IF("'.$name.'"="",NULL,"'.$name.'" ); Leerzeichen werden sogar eleminiert aber \t, \n, \r usw. bleiben natürlich stehen. Ich empfinde das sehr konstruiert und auch wenig elegant. Kommt das nur mir so vor? Ich glaub da muss doch PHP herhalten. Was nur verdammt blöd ist, dass der PHP NULL-Wert nicht in einem SQL-Query als solcher erkannt wird.
  2. maui muc

    bedingtes update

    Juhu, ich habs. SQL ist einfach nur super cool. Ich muss einfach nur einen zweiten INDEX setzen. Der muss dann natülich aus den entsprechenden Feldern bestehen die ggf. ein UPDATE erfahren sollen. Im obigen Beispiel wäre das dann: UNIQUE (firstname,lastname) Hat man nun einen eindeutigen Schlüssel, reich ein: INSERT INTO ... ON DUPLICAT KEY UPDAET ...; Das erspart mir ca. 30 Zeilen PHP Code.
  3. maui muc

    "" als NULL interpretieren

    Hallo, besten Dank für deine Antwort. Es ist genau der Punk, dass gewisse Felder als NOT NULL markiert sind. Wenn ich "" in die DB schreibe entspricht das eben nicht dem NULL-Wert und der leere String wir in das Feld geschrieben. Ich will aber, dass ein "" als NULL eingetragen wird. Ist dann ein Feld mit NOT NULL markiert gibt es einen Fehler und das ist genau was ich will. Gruß Stefan
  4. maui muc

    "" als NULL interpretieren

    Hallo liebe Gemeinde , der Titel sagt eigentlich schon alles. Ich wüsste gerne wie ich in SQL ein "" (leerer String) als NULL-Wert interpretiere. Das würde mir nämlich etliche Kontrollstrukturen in PHP ersparen. Gruß Stefan
  5. maui muc

    bedingtes update

    Genau das möchte ich eben umgehen. Wenn ich die ID übergebe, dann kann ich auch gleich mit INSERT ... ON DUPLICAT KEY ... ; arbeiten. Gibt es vielleicht eine Kontrollstrucktur in SQL die folgendes leistet? WENN (query) DANN (update) SONST (insert) Gruß Stefan
  6. maui muc

    bedingtes update

    Hallo Leute, heute habe ich ein, wie ich meine, echt kniffeliges Problem. Über ein Formular füttere ich eine Personentabelle mit den ublichen Werten wie Name, eMail usw.. Die Tabelle hat natürlich auch einen Primärschlüssel. Jetzt kann es aber vorkommen, dass sich bei der Eingabe ein Tippfehler einschleicht. Sollte das der Fall sein, möchte ich, dass der User das Formular korrekt ausfüllt und erneut abschickt. Stimmt dann ein gewisser Satz von Daten überein, soll ein UPDATE durchgeführt werden anderenfalls ein INSERT. Dazu hatte ich folgende Idee: REPLACE INTO students (id,firstname,lastname,email) VALUES( (SELECT id FROM students WHERE firstname="Max" AND lastname="Mustermann") , "Max", "Mustermann","korrigierte eMail"); Das funktioniert aber nicht, weil ich im subquery auf die selbe Tabelle verweise. ERROR 1093 (HY000): You can't specify target table 'students' for update in FROM clause Edit: REPLACE verhält sich für meine Zwecke ganz praktisch. ist das Feld id leer, wird via auto_increment eine neue id vergeben und ein neuer Datensatz erzeugt. Ist die ID hingegen gegeben werde die Daten überschrieben. Gibt es vielleicht so etwas wie eine IF Abfrage? Hat einer von euch einen Tipp wie dieses verzwickte Problem Lösen kann? Gruß Stefan
  7. maui muc

    Datenbank importieren

    Auf diese Weise sollte das klappen: UPDATE adressen, adressenneu SET adressenneu.date_of_birth=adressen.date_of_birth WHERE adressen.lastname=adressenneu.lastname AND adressen.firstname=adressenneu.lastname; Vgl.: http://dev.mysql.com/doc/refman/5.1/de/update.html Gruß Stefan
  8. maui muc

    Zeichensatz: MySQL -> PHP -> HTML

    Ne, daran liegt es nicht. Ich arbeite auf eine Linux-Kiste. Da ist so gut wie alles utf8. Ich bin durch Zufall und mit ganz viel Glück auf ein Lösung gestoßen. Leider verstehe ich noch so recht was ich da mache. Und was ich vor allem nicht weiß, wie ich das der DB dauerhaft beibringe. Wenn ich vor der Abfrage folgenden Query ausführe klappt alles: mysqli_query($db,"SET character_set_results = utf8;"); Vgl.: http://dev.mysql.com/doc/refman/5.1/en/charset-connection.html
  9. Wie wäre es mit der Idee, dass man einen Timer und einen Zähler mitlaufen lässt. Den Timer vergliecht man bei jedem Durchgang mit der max_execution_time. Kurz bevor die max_execution_time überschritten wird ruft man einfach das Script erneut auf, übergibt den Zähler und macht da weiter wo man aufgehört hat.
  10. Hallo Zusammen, mit Zeichensätzen habe ich mich leider noch nie großartig auseinandersetzen müssen daher auch meine totale Ahnungslosigkeit. Hoffentlich könnt ihr mir bei dieses Sache etwas auf die Sprünge helfen. Also zum Problem: Ich hab hier eine DB in der Text mit utf8 Zeichensatz codiert ist. Wenn ich ein Feld das einen Umlaut enthält mittels PHP abfrage und an den Browser ausgeben, ergibt das komische Hieroglyphen. Das finde ich etwas komisch weil Umlaute in utf8 eigentlich keine Schwierigkeiten machen sollten. Wenn ich Umlaute über PHP ausgebe oder direkt ins HTML schreibe zeigt der Browser die Umlaute ohne weiteres an. Habt ihr eine Idee woran das liegen könnte? Viele Grüße Stefan
  11. maui muc

    Datumsformat prüfen

    Ja, das ist mir schon bewusst und gefällt mir auch nicht sonderlich. Ich habe mich auch schon etwas mit der Funktion mktime() gespielt aber irgendwie mach die gar nicht was ich will. Zum Beispiel akzeptiert mktime ohne weiteres das Datum 33.13.1980. mktime(0,0,0,13,33,1980) -> 349916400 und das wiederum entspricht dem 2.2.1981 Eigentlich würde ich von der Funktion in diesem Fall einen Fehler erwarten.
  12. maui muc

    Datumsformat prüfen

    Was haltet ihr davon? $date=explode(".",$date,3); if ($date[0]>31 or $date[0]12 or $date[1]2007) $error=2; $date=$date[2]."-".$date[1]."-".$date[0]; Ich bin kein Profi auf dem Gebiet, darum frage ich lieber mal nach. Grauß Stefan
  13. maui muc

    Datumsformat prüfen

    Hallo zusammen, könnte ihr mir einen Tipp geben wie ich am besten einen Datums-String auf Konsistenz prüfe? Erste Ansätze habe ich schon: $date="23.02.2003"; preg_match("/^[0-3][0-9].[0-1][0-9].[1-2][0-9][0-9][0-9]$/", $date); Dieser Code prüft leider nur das Format. Ich würde aber gerne auf Konsistenz prüfen und nur Datums ab 1900 bis heute zulassen. Besten Dank für die Hilfe Stefan
  14. maui muc

    Sicherheit bei Formularen mit MySQL Anbindung

    Mahe, besten Dank, das klappt wunderbar.
  15. maui muc

    Tabellen überschreiben

    Besten Dank für diene Antwort. Schade, dass es einen Möglichkeit gibt eine Tabelle zu überschreiben. Ist aber auch irgendwie logisch, das würde ja Inkonsistenzen Tür und Tor öffnen. Dann muss ich eben ALTER verwenden. Das macht den Code zwar nicht gerade verständlich aber was solls. Besten Dank Stefan
×