kostenloser Webspace werbefrei: lima-city


Script erzeugt falschen Wert!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    adrians

    Kostenloser Webspace von adrians

    adrians hat kostenlosen Webspace.

    Hi!

    Ersteinmal m?chte ich alle user warnen, dei was gegen viele Schleifen und verschachtelte WHiles haben, davon werden gleich eine menge tag/folgen">folgen!
    Zudem habe ich manchmal etwas unverst?ndliche Fehlermeldngen usw programmiert, aber die interessieren hier ja niemanden, oder? :P

    Es w?re super, wenn der Code, der gleich folgen wird, ?berarbeitet werden k?nnte, ich finde den Fehl?er eifnach nicht...>_<


    Technische Daten:

    Gespeichert wird im Format:
    ItemID|Menge;ItemID|Menge;[...]

    Das Script soll diese Eintragen. Ist vielleicht nicht die einfachste methode, die ich gew?hlt habe, aber die platzsparenste..zumindest in der Datenbank..^^"


    So, was wird ausgegeben/eingetragen, wenn ich folgendes Aufrufe, udn dei DB noch leer ist?

    Aufruf ist beidemale folgender:
    insert_item(2);
    insert_item(3);

    11 (= 2|1;3|1)


    Wenn ich es dann nochmals aufrufe wird folgendes ausgegeben:

    (Item is schon da;) 1 - -Enditem:1;3|1
    Splitfromsize0:
    Splitfromsize[$i]: 2

    (Item is schon da;) 1 - -Enditem:1;3|1
    Splitfromsize0:
    Splitfromsize[$i]: 3


    Ich verstehe niht warum! ich fidne den Fhler einfach nciht... T_T


    Hier der Source:

    <?php
    
    ###################################################################
    #Function: Insert_Item($itemid);                                  #
    ###################################################################
    
    function insert_item($itemid)
    {
    $name = $_SESSION['name'];
    
    $daten1 = mysql_query("SELECT `item` FROM `user` WHERE `nickname` = '$name'") OR die("ERROR_WITH_QUERY: Kann die Items nnicht auslesen. - " . mysql_error());
    while($row = mysql_fetch_array($daten1))
    {
    $item = $row[0];
    
    if($item == "")
    {
    $insertitem = "UPDATE `user` Set `item` = '" . $itemid . "|1' WHERE `nickname` = '$name'";
    mysql_query($insertitem);
    
    return 1;
    }
    
    }
    
    if(preg_match("/;/", $item))
    {
    $split = explode(";", $item);
    $count = count($split);
    }
    Else
    {
    $enditem = $item . ";" . $itemid . "|1";
    $insertitem = "UPDATE `user` Set `item` = '" . $enditem . "' WHERE `nickname` = '$name'";
    mysql_query($insertitem);
    
    return 1;
    }
    
    
    while($i < $count)
    {
    ##
    ##W?hrend die Items durchgez?hlt werden.
    ##
    
    
    #
    #Variablen nochmals Splitten, um ItemID von menge zu trennen;
    
    $splitfromsize = explode("|", $split);
    $counted = count($splitfromsize);
    
    
    #
    #W?hrend $z = 0 < $counted
    
    while($z < $counted)
    {
    #Wenn $counted durch zwei teilbar ist:
    #
    
    if($z % 2 == 0)
    {
    #
    #z ist duch zwei teilbar: ItemId;
    
    if($splitfromsize[$z] = $itemid)
    {
    #
    #Splifromsize[$z] entspricht der Itemid!Wenn nicht muss ein neues Item angelegt werden. ;)
    
    
    
    while($y < $count)
    {
    
    if($y < $i)
    {
    $enditem = $enditem . $split[$y];
    }
    Elseif($y > $i)
    {
    $enditem = $enditem . $split[$y];
    }
    Else
    {
    
    if($splitfromsize[0] != "")
    {
    
    if($splitfromsize[$i] != "")
    {
    $x = $i - 1;
    $biggeritem = $splitfromsize[$x] . "|" . $splitfromsize[$i] + 1 . ";";
    $enditem = $enditem . $biggeritem;
    }
    Else
    {
    $x = $i - 1;
    die("Splitfromsize[$i] ist leer! - '" . $splitfromsize[$i] . "' - '" . $splitfromsize[$x] . "'");
    }
    
    }
    Else
    {
    $x = $i - 1;
    die("Splitfromsize[0] ist leer! - '" . $splitfromsize[$x] . "'");
    }
    
    
    }
    
    $y++;
    }
    
    
    
    $insertitem = "UPDATE `user` Set `item` = '$enditem' WHERE `nickname` = '$name'";
    $iteminsertcomplete = mysql_query($insertitem) OR die("ERROR_WITH_QUERY: Konnte Item nicht eintragen! - " . mysql_error());
    return "(Item is schon da;)  1  -  -Enditem:" . $enditem . "<br>Splitfromsize0:" . $splitfromsize[$x] . "<br>Splitfromsize[$i]: " . $splitfromsize[$i] . "<br><br>";
    
    }
    Else
    {
    $insertitem = "UPDATE `user` Set `item` = '" . $itemid . "|1' WHERE `nickname` = '$name'";
    $iteminsertcomplete = mysql_query($insertitem) OR die("ERROR_WITH_QUERY: Konnte Item nicht eintragen! - " . mysql_error());
    return "1";
    }
    
    
    
    
    }
    
    
    
    #
    #$z erh?hen!
    $z++;
    }
    
    
    
    $i++;
    ##
    ##Ende der Schelife; Zum beenden $i = $count + 1;
    ##
    }
    
    }
    
    
    
    ?>



    Danke Im Voraus!

    ?dit: Entfernen von ausversehenen i Tags.


    Beitrag ge?ndert am 9.04.2006 13:59 von adrians
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    adrians

    Kostenloser Webspace von adrians

    adrians hat kostenlosen Webspace.

    Entschuldigung bitte, aber das ist nicht so ein Problem, wie die deinen es sind.

    Hier geht es nicht um die Frage:
    Wie update ich eine MySQL tabelle?

    sondern um ein etwas komplexeres Script.


    ?brigens: Der Thread kann geschlossen werden. Ich dachte er w?re in der Versenkung verschwunden.

    Das Problem hat sich schon seit l?ngereem erledigt.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!