ilch Forum » Allgemein » HTML, PHP, SQL,... » php problem

Geschlossen
  1. #1
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    hi zusammen,
    ich hab grad das problem, dass mein php befehl den ich ausführen will, nicht mehr klappt ... gestern mittag gings noch, dann hab ich 2 felder hinzugefügt und aufeinmal zeigt er mir folgenden error an:

    ZitatZitat

    Parse error: syntax error, unexpected T_STRING in ... on line 31


    hier mal der code:
    [...]
    <?php
    $sql = 'UPDATE FROM anjin_config SET
    	titel = "'.$_POST['titel'].'",
    	startseite = "'.$_POST['startseite'].'",
    	email = "'.$_POST['email'].'",
    	name = "'.$_POST['name'].'",
    	strasse = "'.$_POST['strasse'].'",
    	stadt = "'.$_POST['stadt'].'",
    	land = "'.$_POST['land'].'",
    	anrede = "'.$_POST['anrede'].'",
    	name2 = "'.$_POST['name2'].'",
    	strasse2 = "'.$_POST['strasse2'].'",
    	stadt2 = "'.$_POST['stadt2'].'",
    	land2 = "'.$_POST['land2'].'",
    	anrede2 = "'.$_POST['anrede2'].'"' or die mysql_error();  // < line 31
    $update = mysql_query($sql);
    [...]
    ?>


    ich hab schon allesmögliche versucht, aber irgendwie klappt das nicht mehr ... hoffe ihr könnt mir da schnell helfen zwinker
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Surangumal Mitglied
    Registriert seit
    01.01.2009
    Beiträge
    28
    Beitragswertungen
    0 Beitragspunkte
    steht das "die" nicht in der falschen zeile?
    [...]
    <?php
    $sql = 'UPDATE FROM anjin_config SET
        titel = "'.$_POST['titel'].'",
        startseite = "'.$_POST['startseite'].'",
        email = "'.$_POST['email'].'",
        name = "'.$_POST['name'].'",
        strasse = "'.$_POST['strasse'].'",
        stadt = "'.$_POST['stadt'].'",
        land = "'.$_POST['land'].'",
        anrede = "'.$_POST['anrede'].'",
        name2 = "'.$_POST['name2'].'",
        strasse2 = "'.$_POST['strasse2'].'",
        stadt2 = "'.$_POST['stadt2'].'",
        land2 = "'.$_POST['land2'].'",
        anrede2 = "'.$_POST['anrede2'].'"';   // < line 31
    $update = mysql_query($sql) or die mysql_error();
    [...]
    ?>
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    habs grad mal versucht, jz is es derselbe fehler, aber eben eine zeile weiter drunter - also steckt hier anscheinend der fehler drin:

    $update = mysql_query($sql) or die mysql_error();

    komisch grumml


    Zuletzt modifiziert von Son!c am 05.01.2009 - 23:39:56
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Surangumal Mitglied
    Registriert seit
    01.01.2009
    Beiträge
    28
    Beitragswertungen
    0 Beitragspunkte
    ich schreibe das immer mit Klammer, also die(mysql_error());

    teste das doch noch mal
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    cool, danke - jetzt gehts lächeln

    btw. das UPDATE FROM muss nur UPDATE heißen - hab da nur was versucht, also nicht nachmachen zwinker
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Surangumal Mitglied
    Registriert seit
    01.01.2009
    Beiträge
    28
    Beitragswertungen
    0 Beitragspunkte
    gerne. das sql habe ich mir gar nicht angesehen, sonst hätte ich nämlich noch meine standard führsprache bezüglich sql-injection geschrieben zunge
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    noch eben ne andere frage ...

    ich hab das mit der anrede als select/option gemacht mit Herr und Frau als Auswahl - das ganze speichert es auch richtig in die Datenbank; nun die frage:
    wie kann ich das in der datenbank gespeicherte in die option reinfügen, damit das schon ausgewählt ist?

    <select name="anrede" onMouseOver="this.className='input_over'" onMouseOut="this.className='input_out'" value="<?php echo $array["anrede"]; ?>"><option value="0">-- Bitte Wählen --</option><option value="1">Herr</option><option value="2">Frau</option></select><br>


    habs mit dem array schon versucht, aber das funktioniert nicht.
    info: $array ist richtig bestimmt da es bei anderen feldern auch geht zwinker


    Zuletzt modifiziert von Son!c am 06.01.2009 - 00:34:12
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Surangumal Mitglied
    Registriert seit
    01.01.2009
    Beiträge
    28
    Beitragswertungen
    0 Beitragspunkte
    der select-tag hat kein value, denn das sind ja die option-tags.

    die option-tags haben aber ein selected='selected' attribute.

    also so ungefähr:

    <select name="anrede" onMouseOver="this.className='input_over'" onMouseOut="this.className='input_out'">
    
    <option value="0">-- Bitte Wählen --</option>
    
    <option value="1" <?=$array["anrede"]==1?"selected='selected'":""?>>Herr</option>
    
    <option value="2" <?=$array["anrede"]==2?"selected='selected'":""?>>Frau</option>
    
    </select>
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    ne, das funktioniert nicht ...
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    wenn des mit der datenbank is musste es so machen

    muss halt an deine tabelle und tabellen name angepastt werden
    <?php
    $query = "
    		SELECT anrede FROM `tabellenname`
    ";
    $sql = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_object($sql);
    $anrede = $row->anrede;
    if( 'Herr'===$anrede) {
    ?>
    					<option label="Herr" selected="selected">Herr</option>
    					<option label="Frau">Frau</option>
    <?php
    }
    else if ( 'Frau'===$anrede ) {
    ?>
    						<option label="Herr" >Herr</option>
    						<option label="Frau" selected="selected">Frau</option>
    <?php
    }
    else {
      var_dump($anrede);
      die;
    }



    Zuletzt modifiziert von -GoA][-Sniper am 06.01.2009 - 12:27:58
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    danke, so funktionierts ... habs aber n bisschen einfacher gemacht zwinker
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    noch n anderes problem:

    undzwar lass ich bei meiner newsfunktion das editieren über ein GET laufen ... also das das in der URL dann so aussieht: seitenname.de/admin.php?open=news&action=edit&id=X

    in der php sieht das dann so aus:
    <?php
    if($_GET['action']=="edit"){
    	$id_2 = $_GET["id"];
    	$sql_edit = "SELECT * FROM anjin_news WHERE ID = '".$id_2."'";
    [..]?>


    das gaze funktioniert auch so weit ... nun mein problem:

    beim updaten der news bekomm ich das nich hin, das er NUR die eine news editiert - ich habs schon mit allen möglichen WHERE ID = 'xy' versuchen probiert, aber hat nie geklappt grumml
    außerdem ändert er das datum dann immer auf 30.11.-0001 - vllt könnt ihr mir da ja auch weiterhelfen lächeln

    Hier mal der
    <?php
    if($_POST["subedit"]){
    [..]
    $sql2 = "UPDATE anjin_news SET 
    	Titel = '".$_POST["Titel"]."', 
    	Datum = 'NOW()', 
    	Inhalt = '".$_POST["Inhalt"]."'
    	WHERE ID = '".$id_2."'";
    	$update = mysql_query($sql2);
    	[..]
    }
    ?>


    danke schonmal Bier
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Hassmann Mitglied
    Registriert seit
    13.02.2008
    Beiträge
    1.591
    Beitragswertungen
    9 Beitragspunkte
    WHERE id = blablaabl LIMIT 1
    Sub2Go.NET | Kostenlosen Webspace mit vielen features! Für Ilch-Forumsmitglieder doppelten Speicher!
    Mave1993.de Blog
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    LIMIT 1 bringt nix, ich brauch nur das mit dem WHERE ID - und das is mein problem: ich weiß nich wie ich das bestimmen soll ...

    und dann is da ja noch das problem mit dem datum zwinker
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Hassmann Mitglied
    Registriert seit
    13.02.2008
    Beiträge
    1.591
    Beitragswertungen
    9 Beitragspunkte
    bei dem datum kannste ja mal probieren das datum in php zu bestimmen mit der function date().. als variable und dann eintragen lassen und nid per NOW()...
    Sub2Go.NET | Kostenlosen Webspace mit vielen features! Für Ilch-Forumsmitglieder doppelten Speicher!
    Mave1993.de Blog
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Ithron Hall Of Fame
    Registriert seit
    21.01.2006
    Beiträge
    2.659
    Beitragswertungen
    24 Beitragspunkte
    Mhhh, war das id? Ich weiß es gerade nicht mehr, glaube aber schon...


    Versuch mal:
    WHERE `id` = '".$id_2."'



    Man sollte für Tabellennamen sowieso immer ` benutzen, aber zumindest bei bestimmten Schlüsselwörtern [b]muss[b] man dies machen.
    ZitatZitat geschrieben von loW

    Ja ich habs gesehen und wenn ichs kostenlos bekomm dann zahl ich doch nix dafür oder?
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    deine version hat auch nich geklappt ithron, trotzdem danke. ich habs jz selber rausgefunden - nun hab ich aber trotzdem noch ein kleines problem:

    das datum wird jetzt zwar richtig ausgegeben, aber auf englisch. ich habs schon mit nem array versucht aber das will irgendwie nicht grumml

    $date = date("d. F Y", $row["Datum"]);
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Lorp_Oo Mitglied
    Registriert seit
    02.10.2007
    Beiträge
    274
    Beitragswertungen
    0 Beitragspunkte
    [edit] hab müll geschrieben ^^ wolltest es ja in die DB schreiben nicht auslesen

    Hab gerade auch Probleme mit den Datum gehabt und hab mir das hier zusammengebastelt.
    Ka ob man es so auf die Menschheit loslassen kann aber es funzt ^^.

    $day = substr ( $row->news_time, 8, 2 );
    $month = substr ( $row->news_time, 5, 2 );
    $year = substr ( $row->news_time, 0, 4 );



    Zuletzt modifiziert von Lorp_Oo am 08.01.2009 - 01:08:51
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    ne, ich will das datum schon auslesen zwinker

    edit:
    mit dem klappt das nicht zunge


    Zuletzt modifiziert von Son!c am 08.01.2009 - 01:17:29
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    hast du das datum in deutsch umgewandelt und dan in die datenbank eingetragen??

    weil mysql gibt ja die monate immer in Englisch zurück am besten machst du es über Timestamp du gibst das datum auser Tabelle in Timestamp aus und teilst es so dan so auf
    bis jetzt hat es bei mir geklappt.

    also du gibst das datum in der datenbank in timestamp aus
    ich machs mal in einer function

    <?php
    function datum($t)
    {
    	$monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "December");
    	
    		$ergebnis = date("j. ", $t).htmlentities($monat[date("n")-1],$t).date(" Y, H:i:s", $t);
    	return $ergebnis;
    }
    
    $timestamp = //Timestamp aus der datenbank;
    echo datum($timestamp);
    ?>



    Zuletzt modifiziert von -GoA][-Sniper am 08.01.2009 - 18:34:50
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    freak Mitglied
    Registriert seit
    31.01.2007
    Beiträge
    856
    Beitragswertungen
    0 Beitragspunkte
    $variable = str_replace(' ', 'T', $variable2) . 'Z';
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten