Frage zu einer Variable

Methos

Erfahrenes Mitglied
Hallo,

hab hier was geschrieben und hätte hier mal ne Frage wieso das ganze ohne diese Variable nicht geht. Sobald die Zeile raus ist, trägt er nichts mehr in die DB ein.

$interpret = $interpret2;

Hier der Code:

PHP:
<?php
   $interpret = $HTTP_POST_VARS['interpret'];

    /* Verbindung aufbauen, auswählen einer Datenbank */
    $link = mysql_connect("XX.XXX.XXX.XXX", "XXX", "XXX")
        or die("Keine Verbindung möglich!");
    mysql_select_db("XXX") or die("Auswahl der Datenbank  fehlgeschlagen");


$abfrage1 = "SELECT interpret FROM interpreten WHERE interpret LIKE'$interpret'";
$ergebnis1 = mysql_query($abfrage1);
while($row = mysql_fetch_object($ergebnis1))

$interpret = $interpret2;

if ($row->interpret == $interpret)
{
  echo "Interpret existiert schon!";
  echo "<hr>";

  }
else
  {
echo "Eintrag ist gemacht";
$eintrag = "INSERT INTO interpreten (interpretID, interpret) VALUES
('','$interpret')";
mysql_query($eintrag);
echo $interpret2;
  }

$abfrage ="SELECT interpret, interpretID FROM interpreten";
$ergebnis = mysql_query($abfrage);
 while($row = mysql_fetch_object($ergebnis))
    {
    echo "<br>";
    echo $row->interpretID;
    echo " ";
    echo $row->interpret;
    }
 ?>
 
Wenn ich das richtig sehe, ist $interpret2 grundsätzlich leer. Also leerst Du $interpret , wodurch in der If-Abfrage immer ein Vergleich zwischen dem Feld aus dem Datensatz und einer leeren Variable gemacht wird. und da in dem Datensatz wohl immer etwas steht, wird auch immer in den ELSE-Zweig der IF-Abfrage gesprungen.

Lässt Du nun die Zeile raus, wird das Feld aus der Datenbank mit dem via POST übergebenen Parameter verglichen. Die scheinen dann übereinzustimmen, weil ja in diesem Fall nichts in die Datenbank geschrieben wird.

snuu
 
Das war auch meine erste Vermutung, allerdings prüft er ja auch nach ob der Interpret schon in der DB existiert. Und wenn ich einen bestehenden noch einmal eintragen möchte, dann trägt er hier nichts ein so wies sein soll.

Nur wieso er das macht würd ich halt jetzt gern wissen, denn die Zeile

$interpret = $interpret2;

ist ja so eigentlich sinnlos
 
Doch, wenn deine Zeile da ist, dann bezieht sich die while-Schleife nur auf deine sinnlose Zuweisung. Da wird halt dann der else-Teil aufgerufen.
Mit den korrekten Daten passiert das allerdings nicht, könnte das der Grund sein? ;)
 
Zurück