Ralf Rapude: !@ <- hier hängt es bei mir

Hallo Forum,
ich arbeite hier gerade ein PHP - Script durch (und versuche es zu
verstehen). An ein, zwei Stellen hänge ich jedoch fest und begreife es
einfach nicht, was abgeht. Vielleicht kann jemand helfen.
Die Stelle, um die es geht, ist folgende:

while($datenbank = mysql_fetch_row($db_erg))
{
print "datenbank[0]";
 if(!@mysql_select_db($datenbank[0], $link))
 {
 print ....
 }
}

Die erste Stelle, die ich nicht begreife, steht hinter dem while....
Wieso kann ich über datenbank[0] auf die Werte zugreifen? Packt PHP
automatisch alle Werte, die ich über mysql_fetch_row aufgreife in ein
Array?

2. was bedeutet !@mysql_select_db...
Mit dem Ausrufezeichen das ist klar, aber das @? Da habe ich überhaupt nix
drüber gefunden. Kann mir jemand erklären, wofür das gut ist?
Das wäre sehr nett.

Gruß und Dank
Ralf

  1. while($datenbank = mysql_fetch_row($db_erg))
    {
    print "datenbank[0]";
    if(!@mysql_select_db($datenbank[0], $link))
    {
    print ....
    }
    }

    Die erste Stelle, die ich nicht begreife, steht hinter dem while....
    Wieso kann ich über datenbank[0] auf die Werte zugreifen? Packt PHP
    automatisch alle Werte, die ich über mysql_fetch_row aufgreife in ein
    Array?

    Ja genau dafür ist der Befehl da :-). http://www.php.net/manual/en/function.mysql-fetch-row.php

    1. was bedeutet !@mysql_select_db...
      Mit dem Ausrufezeichen das ist klar, aber das @? Da habe ich überhaupt nix
      drüber gefunden. Kann mir jemand erklären, wofür das gut ist?

    Also "!" steht für nicht und "@" für die Unterdrückung evtl. Fehlermeldungen.

    Gruss, Stefan

  2. Hallo Ralf

    Die erste Stelle, die ich nicht begreife, steht hinter dem while....
    Wieso kann ich über datenbank[0] auf die Werte zugreifen? Packt PHP
    automatisch alle Werte, die ich über mysql_fetch_row aufgreife in ein
    Array?

    Ja und zwar in ein indiziertes (numerisches)Array. Mit mysql_fetch_array und der zusätzlichen Angabe des Arraytyps gehts meist besser.

    1. was bedeutet !@mysql_select_db...
      Mit dem Ausrufezeichen das ist klar, aber das @? Da habe ich überhaupt nix
      drüber gefunden. Kann mir jemand erklären, wofür das gut ist?
      Das wäre sehr nett.

    Das @ unterdrückt die Ausgabe von Fehlermeldungen.

    Tschüss landschaf

  3. Hi,
    Dank für die Hilfe. Das mysql_fetch_row habe ein Array als Rückgabewert hat, habe ich irgendwie verdödelt oder überlesen (sorry). Ist soviel neues (wenn auch spannendes) Zeug, dass das wohl irgendwie untergegangen ist.

    Gruß
    Ralf