Abfrage-Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage-Problem

    Hallo,

    vermutlich bin ich einfach nur blind und erkenne den Fehler nicht. Jedenfalls sitze ich nun seit einer halben Stunde an folgender Abfrage:

    PHP-Code:
    <?
    $bandname = mysql_query("SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'");
    $abfrage = mysql_query("SELECT rev_album FROM cdreviews WHERE rev_band = '$bandname'");
    while($row = mysql_fetch_object($abfrage))
    {
    echo "- <i>$row->rev_album</i>";
    }
    ?>
    Diese will nicht funktionieren. Auf einer Review-Seite wird mit $bandname der Bandname der aktuellen Review ausgelesen. Dieser soll dann für den eigentlichen Zweck übergeben werden um in einer Review gleich auf andere Reviews dieser Band zu verweisen. Hat jemand einen Rat? Übrigens kommt kein Fehler sondern einfach gar nichts. Im PHPmyAdmin klappt die Abfrage sofort, allerdings gebe ich da statt $bandname den Namen einer Band an.

    Gruß,
    Andi

  • #2
    Diese will nicht funktionieren.
    das ist keine fehlerbeschreibung.

    wer das hier liest, löst seine probleme auf eigene faust:
    http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      Mach mal eine Fehlerausgabe d.h. vor deiner while Schleife:
      PHP-Code:
      var_dump($abfrage);
      exit; 
      und schau ob Abfrage überhaupt etwas enthält. Sie müsste zwar etwas enthalten, denn sonst müsste php imho einen Fehler werfen.
      Probiers trotzdem mal.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Re: Abfrage-Problem

        Original geschrieben von AndiA


        PHP-Code:
        <?
        $bandname = mysql_query("SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'");
        $abfrage = mysql_query("SELECT rev_album FROM cdreviews WHERE rev_band = '$bandname'");

        ?>
        PHP-Code:
        $bandname mysql_query("SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'"); 
        //du meinst wirklich das in $bandname der Bandname steht??? 
        mfg
        marc75

        <Platz für anderes>

        Kommentar


        • #5
          Schon mal überlegt, was du da genau machst?

          PHP-Code:
          <?php 
          $bandname 
          mysql_query("SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'");
          ?>
          $bandname enthält jetzt eine Resource ID, diese Rescource ID müsstest erst mit den (hoffentlich) bekannten Möglichkeiten auswerten um an den Bandnamen zu kommen. Du setzt jedoch die Resource ID direkt in deiner nächsten Abfrage ein.
          PHP-Code:
          <?php 
          $abfrage 
          mysql_query("SELECT rev_album FROM cdreviews WHERE rev_band = '$bandname'");
          ?>
          Wenn du deine Query in eine Variable setzen würdest und mit dieser eine Testausgabe machen würdest, würdest sehen wo der Fehler liegt.

          Gruss
          Quetschi
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Re: Re: Abfrage-Problem

            Original geschrieben von marc75
            PHP-Code:
            $bandname mysql_query("SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'"); 
            //du meinst wirklich das in $bandname der Bandname steht??? 
            Ich dachte mir schon, dass es klappen würde. Was ist daran denn falsch?

            Kommentar


            • #7
              Re: Re: Re: Abfrage-Problem

              Original geschrieben von AndiA
              Ich dachte mir schon, dass es klappen würde. Was ist daran denn falsch?
              es "klappt" schon, aber es ist nicht das, was du erwartest.
              nach dem ausführen von mysql_query enthält $bandname (im erfolgsfall) erst mal eine resource ID, also eine art "zeiger" auf das abfrageergebnis.

              auswerten musst du das dann aber noch separat.
              http://php-faq.de/ch/ch-database_mysql.html
              http://schattenbaum.net/php/mstart.php
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Kannst du mir denn evtl. einen Hinweis geben, wie ich zum Ergebnis komme? Wie gesagt, da es im PhpMyAdmin läuft, kann es doch eigentlich nicht so schwer sein, zumal alles innerhalb einer Tabelle abläuft.

                Edit: Den Bandnamen ansich gibt es auch aus. Das sieht auf der Seite dann so aus:

                Weitere Reviews von $row->rev_band :
                Und die Auflistung danach scheitert. Falls Interesse besteht, sich solch eine Reviewseite mal anzusehen, kann ich sie gerne verlinken.
                Zuletzt geändert von AndiA; 05.07.2005, 12:20.

                Kommentar


                • #9
                  Original geschrieben von AndiA
                  Kannst du mir denn evtl. einen Hinweis geben, wie ich zum Ergebnis komme?
                  was glaubst du, wofür ich die zwei links gepostet habe ...?

                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Anhand dieser Links habe ich jetzt einiges versucht, komme aber immer noch nicht zum Ergebnis.

                    Kommentar


                    • #11
                      kein problem, du schaffst das schon.
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Danke für deinen Beistand.

                        Kommentar


                        • #13
                          Ich helf nochmal ein wenig nach:

                          PHP-Code:
                          <?
                          $query = "SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'";
                          $bandname = mysql_query($query);

                          $query = "SELECT rev_album FROM cdreviews WHERE rev_band = '$bandname'";

                          echo $query."<br><br>";

                          $abfrage = mysql_query($query);
                          while($row = mysql_fetch_object($abfrage))
                          {
                          echo "- <i>$row->rev_album</i>";
                          }
                          ?>
                          so bekommst den Query-string zu sehen, mit dem du deine 2. Abfrage machst. Fällt dir bei der Ausgabe was auf, was da bei ' .... rev_band = .... ' dahintersteht? Dann sollte dir klar werden, was falsch ist.

                          marc75, wahsaga und ich haben dich bereits darauf hingewiesen. Nimm mal mein Codebeispiel und guck dir die Ausgabe davon an.

                          Gruss
                          Quetschi

                          PS:
                          Falls dein jetztiger Code schon etwas anders aussehen sollte, dann solltest den nochmal posten und genau beschreiben was daran nicht funktioniert.
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #14
                            Vielen Dank erst mal für deine Mühe, Quetschi!

                            Mit deinem Code wird bei '...$rev_band =...' Resource_id 15 ausgegeben. Mein letzter Code lautete so:

                            PHP-Code:
                            <?
                              $abfrage = "
                              SELECT *
                              FROM cdreviews
                              WHERE rev_id = '$rev_id'";
                              $ergebnis = mysql_query($abfrage);
                              while($row = mysql_fetch_object($ergebnis))
                                 {
                                echo "<b> $row->rev_band:</b><br>";
                                }
                                $bandname = mysql_query("SELECT rev_band FROM cdreviews WHERE rev_id = '$rev_id'");
                                $abfrage = mysql_query("SELECT * FROM cdreviews WHERE rev_band LIKE '$bandname'");
                                while($row = mysql_fetch_object($abfrage))
                                {
                                echo "- $row->rev_album";
                                }
                            ?>
                            Gruß,
                            Andi
                            Zuletzt geändert von AndiA; 05.07.2005, 13:24.

                            Kommentar


                            • #15
                              *kopfkratz*

                              Ist das wirklich so schwer zu verstehen? Mein Beispiel sollte dir eigentlich verdeutlicht haben warum das nicht wie erwartet funktionieren kann. Du hast ja sicherlich keine Band in deiner DB die 'Resource_id 15' heißt, oder?
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X