kostenloser Webspace werbefrei: lima-city


Problem bzgl. mysql_query

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fifa-society

    fifa-society hat kostenlosen Webspace.

    Hallo,

    ich versuche aus der MySQL Datenbank zuerst die Tabelle gefaehrdete_trainer zu löschen
    $leeren = mysql_query ("TRUNCATE TABLE gefaehrdete_trainer")
    OR die("Error: $leeren <br>".mysql_error());
    und versuche anschließend sie wieder mit den Ergebnissen von
    $result = mysql_query("(SELECT Trainer, Verein, Spiele
    FROM tabelle_de1
    INNER JOIN phpfusion_users ON ( tabelle_de1.Trainer = phpfusion_users.user_name)
    WHERE tabelle_de1.Spiele < ".$mindestspiele_liga."
    AND phpfusion_users.user_urlaub =0)
    UNION
    (SELECT Trainer, Verein, Spiele
    FROM tabelle_gb1
    INNER JOIN phpfusion_users ON ( tabelle_gb1.Trainer = phpfusion_users.user_name)
    WHERE tabelle_gb1.Spiele < ".$mindestspiele_liga."
    AND phpfusion_users.user_urlaub =0)")

    zu befüllen, wenn ich den Query in MySQL eingebe funktioniert auch alles. Aber im nächsten Schritt wirds nichts eingetragen.

    while ($row = mysql_fetch_object($result)):
    	$Spiele = $mindestspiele_liga - $row->Spiele;
    	$abfrage = mysql_query ("INSERT INTO gefaehrdete_trainer (Trainer, Verein, FehlendeSpiele) VALUES (".$row->Trainer.", ".$row->Verein.", ".$Spiele.") ");
    endwhile;


    Habe versucht mit var_dump den Fehler zu finden und bekam folgendes:
    resource(82) of type (mysql result)


    Die Spalten genauer zu beschreiben, also statt Trainer z.B. tabelle_de1.Trainer, habe ich auch versucht. Allerdings kann ich es dann ja nur für Ergebnisse aus der Tabelle tabelle_de1 benutzen, ich möchte aber die Ergebnisse beider Tabellen (tabelle_de1 und tabelle_gb1) in eine andere Tabelle eingetragen bekommen.

    Beitrag zuletzt geändert: 31.7.2012 16:10:50 von fifa-society
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Also wenn ich mir dein INSERT-Statement ansehe fällt mir auf, dass du die
    '
    vergessen hast... das sollte wohl so aussehen:
    while ($row = mysql_fetch_object($result)) {
    	$Spiele = $mindestspiele_liga - $row->Spiele;
    	$abfrage = mysql_query("INSERT INTO gefaehrdete_trainer (Trainer, Verein, FehlendeSpiele) VALUES ('{$row->Trainer}', '{$row->Verein}', '$Spiele')");
    }
    Dabei könntest du auch noch prüfen ob beim Eintragen ein Fehler aufgetreten ist...
  4. Autor dieses Themas

    fifa-society

    fifa-society hat kostenlosen Webspace.

    Auch mit deinem Teil funktioniert es nicht. Ich vermute, dass es den Spaltennamen bei $row nicht erkennt, da ja durch das JOIN mit mehreren Tabellen gearbeitet wurde, in denen auch 2x die Spalten Trainer und Verein vorkommen.
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Gib doch mal mit
    print_r($row);
    aus was in der Variablen $row steht, eventuell hilft dir das den Fehler zu finden...
  6. Autor dieses Themas

    fifa-society

    fifa-society hat kostenlosen Webspace.

    Ich bekomme gar nichts ausgegeben :/ Weiß aber mittlerweile, dass es wegen dem INNER JOIN nicht funktioniert. Lasse ich den Teil weg kann ich alles problemlos eintragen.

    Nur wie kann ich es mit dem INNER JOIN eintragen lassen? Bzw. ist das INNER JOIN überhaupt richtig gelöst? Ich will alle Trainer ausgegeben bekommen, die weniegr als §mindestspiele_liga haben und von denen anschließend nur die bekommen, bei denen in der Tabelle phpfusion_users in der Spalte user_urlaub eine 0 steht. Der Inhalt der Spalten Trainer und user_name ist der username.

    Beitrag zuletzt geändert: 31.7.2012 21:29:12 von fifa-society
  7. fifa-society schrieb:
    Nur wie kann ich es mit dem INNER JOIN eintragen lassen? Bzw. ist das INNER JOIN überhaupt richtig gelöst? Ich will alle Trainer ausgegeben bekommen, die weniegr als §mindestspiele_liga haben und von denen anschließend nur die bekommen, bei denen in der Tabelle phpfusion_users in der Spalte user_urlaub eine 0 steht. Der Inhalt der Spalten Trainer und user_name ist der username.


    Mal kurz für die Übersicht:

    Du willst die Trainer mit:
    - weniger als §mindestspiele_liga
    - user_urlaub == 0

    Dein SQL sieht ja schonmal nicht schlecht aus:
    SELECT Trainer, Verein, Spiele
    FROM tabelle_de1
    INNER JOIN phpfusion_users ON ( tabelle_de1.Trainer = phpfusion_users.user_name)
    WHERE tabelle_de1.Spiele < ".$mindestspiele_liga."
    AND phpfusion_users.user_urlaub =0


    Probiere mal beim INNER JOIN ein LIKE aus.
    Haben die Tabellen den gleichen Zeichensatz?
    Ist der Username wirklich gleich bzw. hat überhaupt ein Spieler die Voraussetzungen für die Abfrage?
    Ohne die Tabelle zu sehen kann es an einigen Stellen haken.

    Generell würde ich dir empfehlen die Feldnamen generell klein zu schreiben und diese auch zu escapen: `phpfusion_users`.`user_name`
  8. Autor dieses Themas

    fifa-society

    fifa-society hat kostenlosen Webspace.

    Danke :) Mit dem LIKE hat es funktioniert.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!