mabu: (MySQL) + (PHP) immer 1 zuviel???

Hi!

Ich trage mittels PHP eine Zahl in einen bereits vorhanden Datensatz ein, das mache ich so:

echo $banner[views];
mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");

Das echo ist zum überprüfen.

Das Problem: Beim echo kommtjedesmal eine Zahl, eingetragen wird jedoch die Zahl+1. Ich weiß einfach nicht, an was das liegen kann. die Befehle kommen so wie hier genau hintereinander und auch die Spalte hat keine besonderen Eigenschaften definiert.

Vielleicht weiß jemand an was das liegt, vielleicht weiß es aber auch niemand.

Ich bin wirklich am verzweifeln...

mfg,
mabu

  1. Halihallo mabu

    echo $banner[views];
    mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");

    Für was steht $nr? - In (fast) jedem Fall ist es intelligenter und sauberer, diese
    $nr als Attribut in der Tabelle scm_bannerrotation zu speichern und einen Index darauf
    zu legen, als für jede neue $nr eine neue Tabelle zu erstellen.

    Das Problem: Beim echo kommtjedesmal eine Zahl, eingetragen wird jedoch die Zahl+1. Ich weiß einfach nicht, an was das liegen kann. die Befehle kommen so wie hier genau hintereinander und auch die Spalte hat keine besonderen Eigenschaften definiert.

    Du hast irrelevanten Code gepostet. Das hat nichts mit dem UPDATE zu tun, sondern mit
    dem PHP-Code vor dem echo.

    Vielleicht weiß jemand an was das liegt, vielleicht weiß es aber auch niemand.

    Nur wenn du Code _vor_ dem echo postest.

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
  2. Moin!

    echo $banner[views];
    mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");

    Mach das mal anders:

    $sql="UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]";
    echo "<hr>$sql<hr>";

    mysql_query ($sql);

    Staune und ändere das in:

    $sql="UPDATE scm".$nr."_bannerrotation SET views='".$banner[views]."' WHERE id=".$banner[id];

    Innerhalb von "" werden Arrays IMHO nicht ausgewertet.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
    1. Hi,

      Staune und ändere das in:
      $sql="UPDATE scm".$nr."_bannerrotation SET views='".$banner[views]."' WHERE id=".$banner[id];

      das is besser ;-)

      $sql="UPDATE scm".$nr."_bannerrotation SET views=views+1 WHERE id=".$banner[id];

      friedfertig zurück ;-)

      Grüße

      Chris

      1. Moin!

        friedfertig zurück ;-)

        Fürwahr! Du hast Recht. Ich habe da wohl was verschlampt.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Meinereinerselbst ist auf der Suche nach Aufträgen
  3. Moin!

    Ich trage mittels PHP eine Zahl in einen bereits vorhanden Datensatz ein, das mache ich so:

    echo $banner[views];

    Frage: Welchen Wert hat die Konstante "views"?

    mysql_query ("UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]");

    c
    Stattdessen zur Kontrolle machst du am besten sowas:

    $sqlquery = "UPDATE scm".$nr."_bannerrotation SET views='$banner[views]' WHERE id=$banner[id]";

    echo $sqlquery;

    mysql_query($sqlquery);

    Das echo ist zum überprüfen.

    ...der falschen Information.

    Nicht der Wert irgendeiner Variablen ist interessant, sondern der SQL-String, den die Datenbank kriegt.

    Dass es reichlich unsinnig ist, wie du deine Datenbankstruktur angelegt hast, wurde schon gesagt. Du brauchst genau _eine_ Tabelle für alle Banner-Views, die Information "Nummer" gehört nicht in den Tabellennamen, sondern in die Daten, die in der Tabelle drinstehen. Alles andere ist datenbanktechnisch Unsinn.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|