Martin: Auslesen eines Datensatzes aus einer MySQL-Datenbank

Ich habe folgendes Problem:
Ich übergebe von einem PHP-Script die Variable $id einem anderen. Funktioniert auch prima. In der SQL-Tabelle ist eine zweite Spalte "firma". Ich möchte jetzt die Firma, welche zu der id gehört, auf dem Bildschirm darstellen. Hierzu habe ich folgendes Script, welches jedoch nicht funktioniert.

$result=MYSQL_QUERY( "SELECT * FROM $tabelle order by id");

echo  "Die Id ist $id";
for ($i=0; $i<$id; $i++)
$firma = mysql_result($result, $i, "firma");
echo  "Die Firma ist $firma";

Weiß jemand, was ich falsch mache bzw. wie es korrekt aussehen müßte?

Martin

  1. Hallo Martin,

    $result=MYSQL_QUERY( "SELECT * FROM $tabelle order by id");

    hier sollte ein WHERE id = $id helfen, dann bekommst du nur die Firma die du suchst zurück.

    Grüße aus Nürnberg
    Tobias

    1. Hallo!

      $result=MYSQL_QUERY( "SELECT * FROM $tabelle order by id");
      hier sollte ein WHERE id = $id helfen, dann bekommst du nur die Firma die du suchst zurück.

      ...und die vom mySQl-Server zurück gegebene Zeile sollte auch "abgeholt" werden:
      $row=mysql_fetch_array($result);
      $firma=$row["firma"];

      Gruss Sven

  2. Hallo Martin,

    Ich übergebe von einem PHP-Script die Variable $id einem anderen. Funktioniert auch prima. In der SQL-Tabelle ist eine zweite Spalte "firma". Ich möchte jetzt die Firma, welche zu der id gehört, auf dem Bildschirm darstellen. Hierzu habe ich folgendes Script, welches jedoch nicht funktioniert.

    $result=MYSQL_QUERY( "SELECT * FROM $tabelle order by id");

    Du holst hier _ALLE_ Datensätze die in deiner Tabelle stehen,
    Du willst aber nur _eine_ _einzige_ Zelle haben.

    -> riesiger Overhead und Performanceverlust

    for ($i=0; $i<$id; $i++)
    $firma = mysql_result($result, $i, "firma");

    Hier holst Du Dir von _ALLEN_ Datensätzen, mit einer id kleiner
    der gesuchten, die Zelle Firma und überschreibst sie so lange
    bis Du bei id angekommen bist

    -> noch mehr Performanceverlust

    Wenn Du also einfach folgendes schreibst

    $result = mysql_query("SELECT firma FROM $tabelle WHERE id=$id");
    $firma = mysql_result($result, 0);

    wird Dein Script - vor allem bei einer großen Datenbank - wirklich
    _deutlich_ schneller laufen...

    Gruß,
    dimde

    (der gerade wegen den, sich in letzter Zeit häufenden,
     SQL-mit-PHP-Ersetzungsversuchen verzweifelt)