Jump to content

maui muc

Members
  • Content Count

    38
  • Joined

  • Last visited

    Never

Everything posted by maui muc

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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
  15. Hallo zusammen, ich hätte da mal eine grundlegende Fragen zu SQL. Ich bastele gerade an einer PHP-Anwendung mit MySQL Anbindung. Zum erstellen der Tabellen nutze ich CREATE in einem kleine Script das ich mir geschrieben habe. Da aber mein Projekt noch in einem sehr frühen Stadium ist, muss ich noch häufig Änderungen an den Tabellen vornehmen. Wenn ich die Änderungen in mein Script eingebe und dieses ausführe werden aber leider die Tabellen nicht überschrieben. Gibt es für den CREATE Befehl, dass das überschrieben erzwungen wird? Schon jetzt besten Dank und viele Grüße Stefan
  16. Hallo Powie, besten Dank für deine schnelle Antwort. Diese Variable scheint ein Schritt in die richtige Richtung zu sein. Zwar wird der Wert vom Browser des Useres gesendet, erschwert aber schon mal das fälschen des Formulars. Jetzt stehe ich aber noch vor einer weiteren kleinen Herausforderung. Mit diesem Code überprüfe ich den HTTP_REFERER: if (isset($_SERVER["HTTP_REFERER"]) and $_SERVER["HTTP_REFERER"] == "http://".$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"] and isset($_POST["submit"])) {....} Dieser Vergleich hat aber massive Schwächen: Es wird zwischen Groß- und Klein-Schreibung unterschieden was unter Umständen zu Problemen führt. Habt ihr einen Tipp für mich wie ich die Überprüfung des HTTP-Verweises besser gestalten kann? Viele Grüße Stefan
  17. Hallo zusammen, ich schreibe gerade ein kleines PHP Script über das sich User in eine Datenbank eintragen können. Das ganz soll folgendermaßen ablaufen. Der User füllt ein Formular aus, die eingegebenen Daten werden geprüft und anschließend in eine Datenbank gespeichert. So weit ist das auch kein Problem für mich. Jetzt habe ich aber die Sorge, dass sich ein paar Spaßfögel finden, die über ein selbst erstelltes Formular meine Datenbank füttern. Das möchte ich möglichst unterbinden und so restriktiv wie möglich sein. Es sollen wirklich nur Daten von meinem eigenen Formular akzeptiert werden. Wie kann ich das am besten realisieren? Besten Dank und viele Grüße Stefan
  18. Vielen Dank Thomas, nach ein paar Minuten herumprobieren hab ich es hinbekommen Gruß Stefan
  19. Hallo, das pImage Schript beinhaltet ein Script, das die neuen Bilder einer Kategorie ausgibt. Die SQL-Abfrage beschränkt sich hier auf entweder alle neuen Bilder oder lediglich auf genau die einer Kategorie. Ich möchte nun diese Abfrage derart anpassen, dass zu den neuen Bildern eine Kategorie auch die der Unterkategorien gezeigt werden. Zum verdeutlichen meines Wunsches ein Beispiel: Kategorie A enthält die Unterkategorien B und C. In A, B, C seien die Bilder {Bn1A, B2A, ... } {Bn1B, B2B, ... }; {Bn1C, B2C, ... }. Wobei „n“ neue Bilder charakterisiert. Wird nun das Script new.php für die Kategorie A ausgeführt, so soll die SQL-Abfrage die neuen Bilder aus A und B,C zeigen. Also: {Bn1A, Bn1B, Bn1C} Die SQL Abfrage sieht folgendermaßen aus: $sqlbefehl= "Select b.* FROM $tab_pibild b Left Join $tab_picat c on c.id=b.catid where status='view' And c.groupid=0 and catid ='$_GET[topshowcat]' order by b.time desc LIMIT $pitopbilder"; In Zeile 5 wird mit „catid=“ auf die Kategorie strickt eingeschränkt. Hier möchte ich die Abfrage so verändern, dass auch noch die catid's der Unterkategorien aufgeführt sind. Leider habe ich keine Vorstellung wie ich das bewerkstelligen kann. Darum hoffe ich hier, bei euch, auf Hilfe Gruß Stefan
  20. Vielen Dank, manchmal ist die Lösung so nahe liegend dass man gar nicht daran denkt. :H: Zwei Kleinigkeiten hätte ich jedoch noch. Wofür steht das "n." und warum ist ein "%" von "$showkat"
  21. kWrite Ich bin mir nicht sicher ob das unbedingt eine Alternative ist, für Puristen alle mal. Wenn du dann noch Linux am laufen hast muss du dir um FTP auch keine Sorgen mehr machen.
  22. Hallo, bei Powies pNews Script werden, beim öffnen der index.php, alle aktuellen News mittels einer Abfrage aus der Datenbank gelesen. Ich möchte nun aber die Select Abfrage derart modifizieren, dass eine Kategorie ausgeschlossen wird. Sprich; Es sollen beim Aufrufen der index.php des pNews Scriptes alle aktuellen News angezeigt werden außer die der Kategorie xyz. So wie ich das sehe ist das die Abfrage: Wäre nett wenn mir jemand helfen könnte. Gruß Stefan
  23. be-webspace.de mach einen ganz vernünftige Eindruck. Und Kompatibilität zu den PScripte ist wohl auch Familiär bedingt. Das ist ein enormer Pluspunkt. Powie, bitte verstehe mich jetzt nicht falsch. Ich habe aber die Befürchtung dass be-webspace.de, als eher kleines Unternehmen, bei wirtschaftlichen Veränderungen eher ins schwanken geraten kann. Hinter den Platzhirschen stehen meist Multikonzerne die einen leichter Schupser besser verkraften könnten. Oder ist diese Sorge nicht angebracht und ich kann bei be-webspace.de auf eine mehrjährige Zusammenarbeit erwarten. Gruß Stefan
×
×
  • Create New...