tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Gainwar
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
436
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mendo mendo ist offline Rookie
    Registriert seit
    Jul 2009
    Beiträge
    7
    Ich habe folgendes Problem:

    1. Auf einer php Seite werden mehrere Tabellenzeilen per include aufgerufen.
    2. Jede Tabellenzeile enthält einen Hyperlink, welcher eine Änderung in der mysql Datenbank vornimmt. Und die selbe Seite neu aufruft.
    3. Die Änderungen sind richtig, so lange diese Hyperlinks maximal 2x vorhanden sind. Sprich 2 Tabellenzeilen nach einander erfolgen. Sobald aber ein 3 Hyperlink dazu kommt, sind die Ergebnisse der Änderungen falsch und per Zufall ausgewählt.

    Wo liegt mein Fehler?

    Beispiel Tabellenzeile1:

    <?php
    $abfrage2 = "SELECT wohnung FROM wohnungen WHERE username = '$user'";
    $ergebnis2 = mysql_query($abfrage2);
    $wohnungen = mysql_fetch_object($ergebnis2);
    $wohnung = $wohnungen->wohnung
    if($wohnung != 1)
    {?><a href="wohnung.php"<?php
    $aendern1 = "UPDATE wohnungen Set wohnung = '1' WHERE username = '$user'";
    $update1 = mysql_query($aendern1);?> ">Einziehen</a> <?php }
    else
    {echo "bewohnt";}
    ?>

    Beispiel Tabellenzeile2:


    <?php
    if($wohnung != 2)
    {?><a href="wohnung.php"<?php
    $aendern2 = "UPDATE wohnungen Set wohnung = '2' WHERE username = '$user'";
    $update2 = mysql_query($aendern2);?> ">Einziehen</a> <?php }
    else
    {echo "bewohnt";}
    ?>
     

  2. #2
    Avatar von Jacka
    Jacka Jacka ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Beiträge
    390
    Hi!

    Ich verstehe diesen Teil nicht..

    PHP-Code:
    {?><a href="wohnung.php"<?php
    $aendern1 
    "UPDATE wohnungen Set wohnung = '1' WHERE username = '$user'";
    $update1 mysql_query($aendern1);?> ">Einziehen</a> <?php }
    Warum klammerst du bei einem einfachen Link den PHP Teil aus, den hätte man ruhig als String schreiben können.
    Was noch viel verwirrender ist, warum hast du eine SQL Anweisung mitten in der HTML Ausgabe? Du möchtest doch bestimmt diese erst ausführen, wenn jemand auf den Link klickt oder? So wird sie doch immer ausgeführt..

    Grüße,
    Jacka
     
    Biologie ist das was lebt, Chemie das was kracht und Physik das, wo nichts funktioniert!

    - - - - - - - - - - - - - - - -

    Open Source JS-Framework für Business Web-Applications: ExtJS

  3. #3
    Avatar von Steusi
    Steusi Steusi ist offline Nasenbär
    Registriert seit
    Sep 2006
    Ort
    MV
    Beiträge
    431
    Was du genau vorhast verstehe ich leider auch noch nicht ganz.

    Aber ich denke dein Problem ist mit "!=" (also ungleich) zu arbeiten.

    Wenn 2 Links sind ist klar was passiert, es ist nicht das erste also kann es nur das 2. sein.
    Bei 3 Links sind dann aber 2 Bedingungen richtig, es ist nicht das erste und auch nicht das 2. wodurch ein Zufallseffekt auftritt.

    Müssen deine Prüfungen vielleicht auch miteinander verschachtelt werden
    Bitte erkläre nocheinmal was genau passieren soll, wenn der User dies und das macht
     
    Gruß Steusi

    Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
    Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
    PHP-Code:
    $fehler "dummer Tippfehler";
    echo(
    "Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!"); 

  4. #4
    Avatar von Gainwar
    Gainwar Gainwar ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Augsburg
    Beiträge
    128
    Hi,

    ich hab das Gefühl das an der Logic selbst was nicht stimmt. Momentan wird ja beim aufrufen der Seite bereits eine Änderung in der Datenbank vorgenommen. Ich vermute mal du möchtest aber, das die Änderung erst mit Klick auf den Link passiert.

    Dann würde das mit deiner Logik (die für mich übrigens keinen SInn ergibt) so aussehen

    PHP-Code:
    <?php
    // update der daten
    // mit klick auf einen der "einziehen" links.
    if( isset($_GET["einziehen"]) && !empty($_GET["einziehen"])
        && isset(
    $_GET["user"]) && !empty($_GET["user"]) )
    {
      
    $escaped_einziehen=mysql_escape_string($_GET["einziehen"]);
      
    $escaped_user=mysql_escape_string($_GET["user"]);
      
      
    $aendern1 "UPDATE wohnungen Set wohnung = ".$escaped_einziehen." WHERE username = ".$escaped_user;
      
    $update1 mysql_query($aendern1);
    }

    // auslesen der tabelle.
    $abfrage2 "SELECT wohnung FROM wohnungen WHERE username = '$user'";
    $ergebnis2 mysql_query($abfrage2);
    $wohnungen mysql_fetch_object($ergebnis2);
    $wohnung $wohnungen->wohnung;

    if(
    $wohnung != 1)
    {
      print( 
    "<a href=\"wohnung.php?einziehen=1&user=".$user."\">Einziehen</a>" );
    }
    else
    {
      print( 
    "Bewohnt!" );
    }

    if(
    $wohnung != 2)
    {
      print( 
    "<a href=\"wohnung.php?einziehen=2&user=".$user."\">Einziehen</a>" );
    }
    else
    {
      print( 
    "Bewohnt!" );
    }
    ?>
    Hab den Code nicht testen können, weil ich keinen Apache+PHP installiert habe. Sollte aber größtenteils passen.

    Sollte ich falsch liegen, dann erklär doch bitte nochmal genau was du eigentlich vor hast.

    Gruß
    Manuel
     
    Manuel Freiholz
    iF.Gainwar

    iF.SVNAdmin (http://www.insanefactory.com/if-svnadmin/)
    Subversion Benutzeradministration mit PASSWD und LDAP Integration.

  5. #5
    mendo mendo ist offline Rookie
    Registriert seit
    Jul 2009
    Beiträge
    7
    Danke Gainwar :o)

    Genau so hatte ich es gewollt! Alles Roger so. Thnx

    Sorry, bin halt totaler Anfänger und hau noch zuviel durch einander. Sonst hätte ich aber ja keinen Grund um Hilfe zu betteln *lächel*

    Danke nochmals...
     

  6. #6
    Avatar von Gainwar
    Gainwar Gainwar ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Augsburg
    Beiträge
    128
    Hi,

    kein Problem, dafür ist man ja da
    Bitte den Topic dann als "Erledigt markieren" und ggf. Bewertungen vornehmen :P

    Gruß
    Manuel
    mendo bedankt sich. 
    Manuel Freiholz
    iF.Gainwar

    iF.SVNAdmin (http://www.insanefactory.com/if-svnadmin/)
    Subversion Benutzeradministration mit PASSWD und LDAP Integration.

  7. #7
    Maik Tutorials.de Gastzugang
    Zitat Zitat von Gainwar Beitrag anzeigen
    ggf. Bewertungen vornehmen
    Die bei einem Renommee-Modifikator = "0" keine Bewertungspunkte einfahren.

    mfg Maik
     

Ähnliche Themen

  1. [Python]Einzelne Zeilen aus einer CSV Datei löschen
    Von Bexx im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 23.04.09, 12:15
  2. mehrere MySQL Fehler
    Von silverstar2411 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 18.01.08, 17:01
  3. Antworten: 0
    Letzter Beitrag: 23.01.07, 22:42
  4. Antworten: 3
    Letzter Beitrag: 18.02.06, 16:01
  5. Wie Kann ich Animationen in einzelne Frames Rein bRingen
    Von denfao im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 21.06.01, 10:26

Stichworte