Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL Query

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SQL Query

    Hallo ich habe folgendes Problem,

    ich habe folgende Abfrage,

    PHP-Code:
    $Antworten"SELECT DISTINCT id, Antwort, frage FROM *** WHERE frage=".$row->id_Frage." ORDER BY id";

     
    $resultAntwortenmysql_query($Antworten) OR die("<pre>\n".mysql_errno()."</pre>\n".mysql_error());
          while(
    $row mysql_fetch_object($resultAntworten)){
                                  
    $IDAW=$row->id;
                              
    $AW_ausg=$row->Antwort;
    echo 
    "<tr><td class=\"answer\"><label>".$AW_ausg."</label>"
    es bringt auch die gewünschten Antworten und Ausgaben. Zusätzlich aber : Resource id #14 zu jedem Ergebnis.

    Was kann ich tun oder was habe ich falsch gemacht?


  • #2
    zuerst solltest du es vermeiden, die mysql_* FUnktionen nutzen, da diese ab PHP 5.6 nicht mehr verfügbar sind. Ich empfehle da PDO: http://php.net/manual/de/book.pdo.php

    Und gibt $row mal mit var_dump() aus und zeig uns das Ergebnis

    LG
    https://github.com/Ma27
    Javascript Logic is funny:
    [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

    Kommentar


    • #3
      kannst du das bitte richtig einrücken?

      ..so!
      PHP-Code:
      $Antworten"SELECT DISTINCT id, Antwort, frage FROM *** WHERE frage=".$row->id_Frage." ORDER BY id"

      $resultAntwortenmysql_query($Antworten) OR die("<pre>\n".mysql_errno()."</pre>\n".mysql_error()); 
      while(
      $row mysql_fetch_object($resultAntworten)){ 
          
      $IDAW=$row->id
          
      $AW_ausg=$row->Antwort
          echo 
      "<tr><td class=\"answer\"><label>".$AW_ausg."</label>";

      Kommentar


      • #4
        Hallo,

        Greifst du noch an anderer Stelle auf $resultAntworten zu?


        Standardtext für die Datenbankverbindung:
        Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt. Zudem ist deine Query anfällig für SQL-Injections.
        Durch einen Wechsel auf mysqli_* oder PDO greifst du aufdie modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections wirken.
        Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm


        @santana2000, den Code einrücken ist ok, aber du hast ihn auch noch angepasst.
        PHP-Code:
        echo "<tr><td class=\"answer\"><label>".$AW_ausg."</label>"
        Typo oder Stringverknüpfung die als "nicht relevant" erachtet wurde?
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          Zitat von VPh Beitrag anzeigen
          @santana2000, den Code einrücken ist ok, aber du hast ihn auch noch angepasst.
          PHP-Code:
          echo "<tr><td class=\"answer\"><label>".$AW_ausg."</label>"
          Ja, ich konnte die offene schleife nicht ertragen.

          Es ist offensichtlich, dass der script für das posting vereinfachtsimpelt wurde. (in der Abfrage sind sicher noch JOINS, ansonsten würde das das DISTINCT id keinen Sinn machen.) Aber eine offene while Schleife? bitte!

          Kommentar


          • #6
            Ich habe den Fehler gefunden. Aber eher durch Zufall . Es war hinter Label der Punkt jetzt ist es ; und es funktioniert. Trotzdem danke an alle!!

            Kommentar


            • #7
              Klar, jetzt hast du den Fehler gefunden..! Durch Zufall??!!

              Kommentar


              • #8
                Zitat von santana2000 Beitrag anzeigen
                Klar, jetzt hast du den Fehler gefunden..! Durch Zufall??!!
                Ja durch Zufall. Ich bin ein Anfänger und meine Kenntnisse sind sehr begrenzt.

                Kommentar


                • #9
                  Ich nochmal, der Unwissende!
                  ich bin vollkommen ratlos. Ich habe nun das Scrppt nach einigen Tests hochgeladen. In meiner Testumgebun funktioniert es auch doch nicht auf der Seite? aber nur zwei Abfragen. Alles andere läuft korrekt? hier mal der Code:
                  PHP-Code:
                   <tr><th>Antwort</th><th>Angabe in Prozent</th></tr>
                              <
                  tbody>";

                   
                  $Antworten= "SELECT DISTINCT idfrageAntwort FROM umfrageaw WHERE frage=".$row->id_Frage." ORDER BY id";

                   
                  $resultAntworten= mysql_query($Antworten) OR die("<pre>\n".mysql_errno()."</pre>\n".mysql_error());
                        while(
                  $row = mysql_fetch_object($resultAntworten)){
                                                
                  $IDAW=$row->id;
                                            
                  $AW_ausg=$row->Antwort;    
                  echo "
                  <tr><td class=\"answer\"><label>".$AW_ausg."</label>";
                       
                       
                  //Hier beginnt Die Abfrage der gegebenen Antworten
                       
                  $awk="SELECT COUNT(AW) AS anz FROM Umfrageerg WHERE Frage= ".$idFrage;
                       
                  $antwmysql_query$awk);
                       
                       while(
                  $row=mysql_fetch_object($antw)){
                            
                             
                  $gesamt=$row->anz;
                              
                   
                             
                  $antwNrmysql_query("SELECT COUNT(AW) AS anzAW FROM Umfrageerg WHERE AW=".$IDAW );              
                             while(
                  $row=mysql_fetch_object($antwNr)){
                                    
                  $einzel=$row->anzAW;
                               
                                
                                }  
                       }

                       
                       
                  $Prozent= ($einzel/$gesamt)*100;
                       if(
                  $Prozent==0){
                              
                  $ausg"0";
                              
                  $Prozent="";
                          }else{
                              
                  $Prozent=$Prozent;
                              
                  $ausground($Prozent)."%";
                              
                          }
                           
                          echo
                  "<td class=\"radio\" >".
                          
                  "<table><tr>".
                          
                  "<td class=\"prozent\" width=\"$Prozent\">";
                          
                          echo 
                  "$ausg ".
                          
                  "</td>".
                          
                  "</tr></table>";
                       
                       echo
                  "</td></td></tr>";
                                          }
                  echo 
                  "</tbody>".
                          
                  "</table><!-- Ende Tabelle Antworten -->";
                   echo 
                  "</td>"

                  Kommentar


                  • #10
                    Du schließt gleich zu Beginn einen String, den du nicht geöffnet hast. Das kann so schon aus syntaktischen Gründen gar nicht laufen. (Das siehst du auch ganz schön am seltsamen Syntax-Highlighting des Codes hier im Forum.)

                    Kommentar


                    • #11
                      Ist das das ganze Script? Irgendwelche Fehlermeldungen? Error-Reporting an?
                      Relax, you're doing fine.
                      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                      Kommentar


                      • #12
                        Zitat von mermshaus Beitrag anzeigen
                        Du schließt gleich zu Beginn einen String, den du nicht geöffnet hast. Das kann so schon aus syntaktischen Gründen gar nicht laufen. (Das siehst du auch ganz schön am seltsamen Syntax-Highlighting des Codes hier im Forum.)
                        Ich glaube ich verstehe nicht wirklich was du meinst, Warum läuft es dann auf xampp?

                        Kommentar


                        • #13
                          Ja in meiner Umgebung ist es an auf der Homepage nicht

                          Kommentar


                          • #14
                            Diese Fehlermeldung kam jetzt auf der Homepage
                            :

                            Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/www/umfrage/umfrageerg.php on line 111

                            Kommentar


                            • #15
                              Ja - und? Dann tu was getan werden muss! Sei ein Programmierer und folgende dem schwerlichen Pfad der dich nicht direkt in die Hölle führt und schau dir mit var_dump() an was denn dieser Parameter für einen Wert hat. Und wenn er dann null oder false ist (ich weiß nicht worum's geht aber ist doch immer das gleiche), poste es. Erst ab da wird's wieder interessant.

                              Kommentar

                              Lädt...
                              X