Lily: Brauche Hilfe für dieses MySQL SELECT

Hi,
ich will zwei meiner Tabellen in einer Datenbank verknüpfen, von der einen Tabelle soll k.backupDirectory mit der id=$_GET['delete'], von der anderen c.filename mit customerID=$_GET['delete']  geholt werden.

Habe also folgendes versucht:

  
$sql = "SELECT k.backupDirectory, c.filename FROM kunden k WHERE id='".$_GET['delete']."' INNER JOIN createdbackups c ON k.id = c.customerID";  
$result = mysql_query($sql);  
$row = mysql_fetch_assoc($result);  
  
foreach (glob($row['filename']) as $filename) { //Alle Dateien in Backupordner des Kunden löschen  
   unlink($filename);  
}

Ich habe mich bei der Abfrage aber vermutlich total "verhaspelt".. auf jeden Fall kommt immer:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\enbit-server\list.php on line 9

Nun habe ich die Fragen an euch ob jemand weiß warum das nicht funktioniert.

Vielen Dank

  1. yo,

    der Join steht vor der where klausel...

    SELECT k.backupDirectory, c.filename
    FROM kunden k
    INNER JOIN createdbackups c ON k.id = c.customerID
    WHERE id='".$_GET['delete']."'

    Ilja

    1. SELECT k.backupDirectory, c.filename
      FROM kunden k
      INNER JOIN createdbackups c ON k.id = c.customerID
      WHERE id='".$_GET['delete']."'

      Hi Ilja,
      das hatte ich auch versucht, kam aber die gleiche Fehlermeldung.

      1. SELECT k.backupDirectory, c.filename
        FROM kunden k
        INNER JOIN createdbackups c ON k.id = c.customerID
        WHERE id='".$_GET['delete']."'

        Hi Ilja,
        das hatte ich auch versucht, kam aber die gleiche Fehlermeldung.

        Die Fehlermeldung deutet zunächst mal auf eine ungültige Verbindungskennung. Öffnest Du die Verbindung richtig?

        1. Ich habe es jetzt hinbekommen :)

          Der Fehler war, das ich nicht k.id geschrieben habe.

          Nun steh ich aber vor meinem nächsten Problem.

          Ich will 2 Datenbanktabellen löschen:

          DELETE FROM kunden, createdbackups WHERE kunden.id = createdbackups.currentID AND kunden.id = 1

          Das klappt jedoch auch wieder nicht.

          Könnt ihr mir weiterhelfen?

  2. Hallo lily

    Ich habe mich bei der Abfrage aber vermutlich total "verhaspelt".. auf jeden Fall kommt immer:
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\enbit-server\list.php on line 9

    Die Fehlermeldung ist nicht besonders Aussagekräftig. Da steht nur: sorry, _irgendetwas_ ist schiefgegangen. Probier mal, dir den Fehler genauer anzeigen zu lassen. Etwa so (habe deine Quellcode mal ergänzt...)

      
    $sql = "SELECT k.backupDirectory, c.filename FROM kunden k WHERE id='".$_GET['delete']."' INNER JOIN createdbackups c ON k.id = c.customerID";  
    $result = mysql_query($sql);  
    if($result)  
    {  
       $row = mysql_fetch_assoc($result);  
      
       foreach (glob($row['filename']) as $filename) { //Alle Dateien in Backupordner des Kunden löschen  
          unlink($filename);  
    }  
    else  
    {  
      //an dieser Stelle kannst du dann spaeter auch andere Massnahmen ergreifen, falls noetig  
      echo "Fehler:".mysql_error()."<br />";  
      echo $sql;  
    }  
    
    

    Liebe Grüße mbr

    P.S.: Dir ist hoffentlich klar, dass mysql_fetch_assoc($result); nur den _ersten_ Datensatz liefert, den deine query zurueckgibt? Falls es mehrere gibt Datensätze gibt, müßtest du das ganze noch in eine Schleife packen...