Ergebnis 1 bis 20 von 321

Thema: Allgemeiner Fragethread

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Was ist dein Problem?

    PHP-Code:
    <?php
    $cmd 
    "INSERT INTO `tabelle` (`lustigesfeld`, `nocheins`, `undnocheins`) VALUES ('feldeinsinhalt', 'feldzweiinhalt', 'usw')";
    $do mysql_query($cmd);
    ?>
    Speichert ins Feld "lustigesfeld" der Tabelle "tabelle" den Inhalt "feldeinsinhalt", in "nocheins" "feldzweiinhalt" und so weiter.
    Die REQUESTs kannst du im Endeffekt wie jede Variable in den String einarbeiten.

  2. #2
    Es will aber nicht hinhauen!

    So hab ich's gemacht:
    PHP-Code:
     //Beginn
    $SQL "INSERT INTO kalender (Betreff, Autor, Text, URL, Eintragedatum, IconURL, Attribut, Datum) VALUES ('$_REQUEST['Betreff']','$Autor','$_REQUEST['Text']','$_REQUEST['URL']','$_REQUEST['Eintragedatum']','$_REQUEST['IconURL']','$_REQUEST['Attribut']','$Datum','NOW('')')";
    //Ende 
    Das Feld ID ist auto_increment, wie muss ich damit umgehen?



    Der zurückgegebene Fehler war:
    parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in CProgramme\xampp\htdocs\JuRa\Kalender\neu2.php on line 225

  3. #3
    Die ID kannst du überspringen, wenn du sie nicht explizit festlegen willst. Sie erhöht sich dann automatisch.

    Zu deinem Query: Du musst die REQUESTs vom Rest schon trennen.

    PHP-Code:
    <?php
    $sql 
    "INSERT INTO `kalender` (`Betreff`, `Autor`, `Text`, `URL`, `Eintragedatum`, `IconURL`, `Attribut`, `Datum`) VALUES ('".$_REQUEST['Betreff']."', '$Autor', '".$_REQUEST['Text']."', '".$_REQUEST['URL']."', '".$_REQUEST['Eintragedatum']."', '".$_REQUEST['IconURL']."', '".$_REQUEST['Attribut']."', '$Datum', '".time()."')";
    echo 
    $sql;
    ?>
    Schau dir hier einfach mal die Ausgabe an, um zu prüfen, ob der Query so dasteht, wie du dir das vorgestellt hast. Dann kannst du das Teil mit mysql_query an die Datenbank senden.

  4. #4
    @NPC F.
    Bin dem Erfolg schon wesentlich näher gekommen, es haut aber noch nicht ganz hin:

    Wenn ich mir $SQL ausgeben lasse, steht da:
    Code:
    INSERT INTO kalender ('Betreff', 'Autor', 'Text', 'URL', 'Eintragedatum', 'IconURL', 'Attribut', 'Datum') VALUES ('Term1', 'x', 'sjekfjklyfjkl', 'http://www.x.de', '', 'http://', '', '', '1173013339')
    Meine Syntax:
    PHP-Code:
    $DatabasePointer=mysql_connect("localhost"$Benutzer);

    mysql_select_db("bluescreenpage"$DatabasePointer) or die ("Konnte nicht mit DB verbinden.");

    $SQL "INSERT INTO kalender ('Betreff', 'Autor', 'Text', 'URL', 'Eintragedatum', 'IconURL', 'Attribut', 'Datum') VALUES ('".$_REQUEST['Betreff']."', '$Autor', '".$_REQUEST['Text']."', '".$_REQUEST['URL']."', '".$_REQUEST['Eintragedatum']."', '".$_REQUEST['IconURL']."', '".$_REQUEST['Attribut']."', '$Datum', '".time()."')";
    //echo $SQL;

    mysql_db_query($Datenbank,$SQL,$DatabasePointer) or die("Konnte nicht eintragen. Fehler:<br> ".mysql_error() );
    mysql_close();

    Wo ligt der Fehler? Ich danke für deine Gedulige Hilfe!

    Edit:
    Ich glaube ich habe eine mögliche Fehlerquelle gefunden - wie kann man den für die MSQL-Syntax gefährliche Zeichen entfernen? Antwort: mysql_escape_string($Variable)

    Edit 2:
    Das Datum scheint definitiv ein Falschs Format zu haben (1173013810) - wie muss man das aufbereiten, damit das in die DB eingetragen werden kann?

    Geändert von Bluescreen (04.03.2007 um 14:12 Uhr)

  5. #5
    @Bluescreen:
    Wandel am besten einfach das datum-feld in ein Integerfeld um. Dann kannst du es so abspeichern.
    Ausgeben kannst du das dann mit
    PHP-Code:
    echo date("d.m.Y",$row['datum']); 
    So hier mein Problem:
    Ich habe 2 Arrays, in einem sind dateiname, in dem anderen sind werte für diese dateien, pro dateiname ist ein wert in dem anderen array, jetzt frage ich mich wie ich es bewerkstelligt bekomme, dass beide gleichzeitig ausgegeben werden können.
    Die Dateinamen kann ich Problemlos ausgeben:
    (Smarty Template Code)
    PHP-Code:
       {foreach from=$dateinamen item=dateiname}
        <
    option value="{$dateiname}class="...">{$dateiname}</option>
       {/foreach} 
    Aber wie gebe ich die Werte aus dem anderen Feld nacheinander an das class="..." weiter?

  6. #6
    Zitat Zitat
    Ich krieg neben der Tabelle, aus der das Menü besteht keine Weitere für das Inhaltsfenster hin. Es geht nur darunter und das sieht bescheiden aus. Wenn ich das alles in eine andere, größere Tabelle anordne, habe ich das Problem, dass das Menü, falls das Textfenster ein wenig länger sein soll, nach unten rutscht.
    Navigationsverweise sollte man idealerweise innerhalb von Listen festhalten, Tabellarisch ist diese information nicht.
    Schau, ob dein WYSI-Dings Das Navigationselement link (oder rechts, wo du es halt haben willst) floaten (schweben oder fließen, je nach Übersetzung) lassen kannst.

    Auch wenn dich das folgende vielleicht etwas niederdrücken wird: Ich kann nur empfehlen, sich mit HTML und CSS direkt außeinanderzusetzen. Der Code, der von WYSIWYG-Editoren produziert wird nie die Qualität von handgearbeitetem Code erreichen. Darüberhinaus verleiten sie, Elemente, die eigentlich zur Strukturierung dienen für die Gestaltung zu missbrauchen (z.B. die Navigation in einer Tabelle..).

    Zitat Zitat
    Antwort: mysql_escape_string($Variable)
    Diese Funktion ist veraltet. mysql_real_escape_string() eignet sich da am besten.

    Zitat Zitat
    Das Datum scheint definitiv ein Falschs Format zu haben (1173013810) - wie muss man das aufbereiten, damit das in die DB eingetragen werden kann?
    MySQL kennt z.B. Felder vom Typ DATETIME, dabei entspricht der Inhalt immer dem Format YYYY-MM-DD HH-MM-SS. Wenn ein Datenbanksystem Felder dieser Art kennt ist es aus Performancegründen sinnvoll, diese auch zu verwenden

    Zitat Zitat
    Aber wie gebe ich die Werte aus dem anderen Feld nacheinander an das class="..." weiter?
    Du hast zwei Arrays. Wenn diese zueinander zugehörige Daten enthalten müsstest du sie ja auch bereits vor der Ausgabe mit Smarty zusammenlegen können (spricht: zu einem Array zusammenfügen). Wenn du dann nur noch ein Array hast, soltle es kein Problem mehr sein. Allerdings kenne ich Smarty selbst nicht sehr gut.

    Geändert von mitaki (04.03.2007 um 19:23 Uhr)

  7. #7
    Zitat Zitat von mitaki Beitrag anzeigen
    Du hast zwei Arrays. Wenn diese zueinander zugehörige Daten enthalten müsstest du sie ja auch bereits vor der Ausgabe mit Smarty zusammenlegen können (spricht: zu einem Array zusammenfügen). Wenn du dann nur noch ein Array hast, soltle es kein Problem mehr sein. Allerdings kenne ich Smarty selbst nicht sehr gut.
    Joa leider wusste ich einfach nicht wie ich die zusammenfügen sollte, und vor allem das ganze dann später wieder auseinander pflücken sollte.
    Deswegen habe ich es jetzt einfach so gelöst, dass nur die Dateien angezeigt werden, die noch nicht in der mysql Tabelle sind:
    PHP-Code:
      $inlist = array();
      foreach(
    $files as $file) {
        if(!
    in_array($file$rows)) {
             
    $inlist[] = $file;
        }
      } 

  8. #8
    Wie kann ich im CSS PHP verwenden? Einlinken tu ichs so:
    Code:
    <link rel="stylesheet" media="screen,projection"
    		title="Standard" href="stylesheets/css1.php"
    		type="application/x-httpd-php" />
    Es funktioniert nicht, an was liegt es? Verwende ich einen falschen MIME-Typ oder geht das gar nicht was ich will?

  9. #9
    PHP in einer CSS Datei ist kein Problem. Die Dateiendung der Datei muss halt eine sein, die der Webserver als PHP-Dater erkennt. Das sollte bei .php der Falls ein.

    Zum link-Element. Das muss dennoch den CSS-MIME-Typ enthalten!
    HTML-Code:
    <link rel="stylesheet" media="screen,projection"
    		title="Standard" href="stylesheets/css1.php"
    		type="text/css" />
    Davon abgesehen, muss die Datei aucvh als text/css versendet werden, weil sie sonst von Browsern ignoriert werden muss. Am Anfang der Datei muss also ein
    PHP-Code:
    header('content-type: text/css'); 
    stehen.

    Da PHP den bitte-nicht-cachen-Header automatisch sendet, sollte eine dynamische Bearbeitung des ganzen auch keine Probleme verursachen.

    Wenn das nicht hilft, musst du eine genauere Fehlerbeschreibung herausrücken!

  10. #10

  11. #11

    Immer noch nichts...

    Zitat Zitat von mitaki Beitrag anzeigen
    MySQL kennt z.B. Felder vom Typ DATETIME, dabei entspricht der Inhalt immer dem Format YYYY-MM-DD HH-MM-SS.
    Ist es nicht YYYY-MM-DD HH:MM:SS?
    So steht's zumindest im phpMyAdmin-Panel.

    Zitat Zitat
    Wenn ein Datenbanksystem Felder dieser Art kennt ist es aus Performancegründen sinnvoll, diese auch zu verwenden
    Sehe ich genauso.

    Es funktioniert aber IMMER noch nicht. Meine SQL-Eintrag-Syntax, nach jedem Komma der VALUES habe ich aus lesbarkeits-Gründen einen Zeilenumbruch eingefügt:
    PHP-Code:
    $SQL "INSERT INTO kalender ('Betreff', 'Autor', 'Text', 'URL', 'IconURL', 'Attribut', 'Datum') VALUES ('".$_REQUEST['Betreff']."',
     '
    $Autor',
     '"
    .$_REQUEST['Text']."',
     '"
    .$_REQUEST['URL']."', 
    '
    $Icon', 
    '
    $attribut', 
    '
    $Datum')"
    Die Ausgabe der $SQL Variable:
    Code:
    INSERT INTO kalender ('Betreff', 'Autor', 'Text', 'URL', 'IconURL', 'Attribut', 'Datum') VALUES ('Term1', 'x', 'aersjkt drhlgwr', 'http://www.x.de', '03', 'normal', '2007-03-14 00-00-00')
    Bild vom ...myadmin:


    Wo liegt das verdammte Problem?

    Edit: Mit HH:MM:SS gehts auch nicht:
    Code:
    [...] VALUES ('Term1', 'x', 'aersjkt drhlgwr', 'http://www.x.de', '03', 'normal', '2007-03-14 00:00:00')
    Edit 2:Sehe ich es aber richtig, dass ich AUTO_INCREMENT & ON UPDATE CURRENT_TIMESTAMP Felder nicht in der EintragsSyntax erwähnen muss?

    Geändert von Bluescreen (08.03.2007 um 17:59 Uhr)

  12. #12
    Was ist denn? Kommt ne Fehlermeldung, oder was?

  13. #13
    Bei den Spaltennamen nicht in einfache Anführungszeichen stellen, wenn schon denn schon `, ` und ' sind nicht das gleiche. ` verhindert das eine PHP-reserviertes Wort nicht als solches erkannt wird. Zudem solltest du `id`auch übergeben bei den VALUES einfach NULL hinschreiben ohne irgendwas.(aber du hast glaub schon recht, muss nicht sein)
    Hat bei mir mit einfachen Anführungszeichen bei den Spaltennamen auch nicht geklappt, bei den VALUES gehören sie aber hin.

    Geändert von Drakes (08.03.2007 um 18:35 Uhr)

  14. #14
    Zitat Zitat von Bluescreen Beitrag anzeigen
    Code:
    INSERT INTO kalender ('Betreff', 'Autor', 'Text', 'URL', 'IconURL', 'Attribut', 'Datum') VALUES ('Term1', 'x', 'aersjkt drhlgwr', 'http://www.x.de', '03', 'normal', '2007-03-14 00-00-00')
    Ich denke, der Fehler ist einfach, dass du versuchst einen String in ein Datumsfeld einzufügen. Probiere mal statt
    '2007-03-14 00-00-00'
    das hier:
    DATE('2007-03-14 00-00-00')
    ^^
    Zitat Zitat
    Edit 2:Sehe ich es aber richtig, dass ich AUTO_INCREMENT & ON UPDATE CURRENT_TIMESTAMP Felder nicht in der EintragsSyntax erwähnen muss?
    Ich mach's immer so, dass ich's zwar vorne erwähne aber nachher eine Null reinschreibe. Also:
    Code:
    INSERT INTO `table` (`id`, `name`) VALUES (NULL, 'Ibsd');

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •