Lord Of Crash: Array

for ($i = 1; $i < 29; $i++)
{
  $client1 = 'select i from Betriebssystem where lizenznr= $lizenznr';
  $client[i] = mysql_query($Client1,$Verbindung);
  if ($client[i]=='win98')
{
  $client[i]='./cp/ws/win98.gif';
  $text[i]='Windows 98';
}
elseif ($client[i]=='win95')
{
  $client[i]='./cp/ws/win95.gif';
  $text[i]='Windows 95';
}
..
main($lizenznr,$server,$texts, $client, $text);
}
function main($lizenznr,$server,$texts, $client, $text)

was stimmt daran nicht? Ich versuche zwanghaft den Array zu übergeben. Der Compiler meldet mir keine Fehlermeldung. Ich krieg einfach nur nicht die Variabel Client[i] nicht übergeben. Wer kann mir weiterhelfen

  1. Hallo!

    for ($i = 1; $i < 29; $i++)
    {
      $client1 = 'select i from Betriebssystem where lizenznr= $lizenznr';
      $client[i] = mysql_query($Client1,$Verbindung);

    Zwischen $client1 und $Client1 ist ein ziemlich großer Unterschied, nähmlich das kleine "c" und das große "C".

    Sehe ich das richtig, Du möchtest 29 DB-Abfragen starten?

    was stimmt daran nicht? Ich versuche zwanghaft den Array zu übergeben.

    Das Array wird nicht gefüllt.

    MfG, André Laugks

    1. Rehi,

      theorethisch würde ich dir ja recht geben wenn da nicht diese Zeile am Ende der If schleife stände:

      else
      {
      $client[i]='./cp/ws/nv.gif';
      $text[i]='Nicht vorhanden';
      }

      Stimmt. Ich will 29 Abfragen starten. Mein Problem ist aber jetzt, wie übergebe ich die Variabel an eine andere funktion?

      main($lizenznr,$server,$texts, $client, $text);
      }
      function main($lizenznr,$server,$texts, $client, $text)
      {

      Etwa so? Das klappt nämlich bei mir nicht. Ich hab es auch schon so probiert.

      main($lizenznr,$server,$texts, $client[], $text[]);
      }
      function main($lizenznr,$server,$texts, $client, $text)
      {

      Aber ich denke mal, dass die oberen if Schleife mit den 29 Abfragen richtig ist. Kannst du mir weiterhelfen? Ich finde keine Vernünftige Referenz darüber.

      1. Hallo!

        main($lizenznr,$server,$texts, $client[], $text[]);

        main($lizenznr,$server,$texts, $client, $text);

        Aber ich denke mal, dass die oberen if Schleife mit den 29 Abfragen richtig ist. Kannst du mir weiterhelfen? Ich finde keine Vernünftige Referenz darüber.

        29 Datenbankanfragen, für eine Seite? IMHO hast Du ein Problem, mit der Datenbankstruktur, keine SQL-Kentnisse oder was auch immer. Wenn es 29 unterschiedliche SQL-Statements wären, die sind aber alle fast gleich.

        MfG, André Laugks

  2. Moin,

    for ($i = 1; $i < 29; $i++)
    {
      $client1 = 'select i from Betriebssystem where lizenznr= $lizenznr';
      $client[i] = mysql_query($Client1,$Verbindung);
      if ($client[i]=='win98')
    {
      $client[i]='./cp/ws/win98.gif';
      $text[i]='Windows 98';
    }
    elseif ($client[i]=='win95')
    {
      $client[i]='./cp/ws/win95.gif';
      $text[i]='Windows 95';
    }
    ..
    main($lizenznr,$server,$texts, $client, $text);
    }
    function main($lizenznr,$server,$texts, $client, $text)

    was stimmt daran nicht?

    Mal sehen:
    1. Deine Einrückung ist ...äh.. unvorteilhaft, da erkennt man nicht wirklich welche Klammer was macht
    2. Du möchtest auf keinen Fall $lizenznr innerhalb von ' benutzen, da werden Variablen nämlich nicht beachtet
    3. Du hast vergessen dir die Doku von mysql_query (http://www.php.net/mysql_query) anzusehen, dann würdest nämlich bemerkt haben dass $c... = mysql_query(...); if($c... == "bla")  nicht funktionieren kann, da mysql_query nur den Ressource-Identifier zurückgibt, du aber einen Zellwert haben willst, den du mit mysql_fetch_array() und Konsorten kriegst.
    4. Deine Schleife ist ohnehin sinnlos da sie 29 mal die Abfrage "select i from Betriebssystem where lizennr = $lizenznr" (ja, genauso wie ich geschrieben habe, bloß ohne Anführungszeichen) abschickt.
    5. Selbst wenn sie funktionieren würde, würde $client[i] bzw. $text[i] immer auf ein assoziatives Array an der Stelle "i" zugreifen. Du willst wahrscheinlich $i benutzen.
    6. Deine Gross/Kleinschreibungsprobleme wurden ja schon erwähnt.
    7. Dass du deine Datenbankabfrage/das Design nochmal überdenken willst um alle nötigen Werte mit einer Abfrage und einer anschließenden Schleife über mysql_fetch_array() zu kriegen, wurde ebenfalls bereits erwähnt.

    --
    Henryk Plötz
    Grüße aus Berlin