mysql vergleich mit von html übergebener variabel funktioniert nicht.

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

  • mysql vergleich mit von html übergebener variabel funktioniert nicht.

    Hallo.

    Die folgende abfrage scheint nicht zu funkionieren,
    PHP-Code:
    $namedess mysql_query ("SELECT entscheid FROM $datename 
    WHERE name = '
    $name1' or '$name2' or 'name3' or '$name' ORDER BY datum");

    while (
    $namedessrow mysql_fetch_array($namedess))    {
        
    $namedess1[$dessval] = $namedessrow['entscheid'];
        
    $dessval++;

    da ich hier (bei #HIER) keine ausgabe von $namedess[$y] erhalte.
    PHP-Code:
    echo "<table border=1>";
    for (
    $y=0$y<$dateval$y++) {
        echo 
    "<tr><td>".$datevar[$y]."-".$namedess1[$y]; #HIER
    echo "</td><td> n.a. <input type=radio name=dessdate".$y." value=n.a.";
        if (
    strcmp($na,$namedess1[$y])==0){echo " checked";}
        echo 
    "></td><td> nein <input type=radio name=dessdate".$y." value=nein";
        if (
    strcmp($nein,$namedess1[$y])==0){echo " checked";}
        echo 
    "></td><td> ja <input type=radio name=dessdate".$y." value=ja";
        if (
    strcmp($ja,$namedess1[$y])==0){echo " checked";}
        echo 
    "><br></td></tr>";
    }
    echo 
    "</table>"
    name1, name2, name3, brauche ich um name umzuwandeln falls es von der übergabe noch html zeichen dabei hat:

    PHP-Code:
    $name1 ereg_replace("&nbsp;"," ",$name);
    $name2 ereg_replace("%A0"," ",$name);
    $name3 ereg_replace(" "," ",$name); 
    der name der im link übergeben wird sieht so aus (firefox):
    editplayer.php?name=Christoph%A0P.

    Wenn ich bei der WHERE anfrage einen existierenden namen ('Hans M.') einfüge funktioniert die anfrage
    welche das checked zu den radio's hinzufügt.
    sonst passiert einfach nichts, also auch kein fehler.

    mfg schamane

    PS: Hoffe man versteht was meine frage ist, sons reklamieren.
    Zuletzt geändert von melodylion; 23.04.2007, 17:36.

  • #2
    Code umbrechen!

    Kommentar


    • #3
      so, habe code jetzt erstmal hier umgebrochen ;P
      denke dass war für hier im forum gemeint...
      oder könnte das zur lösung meines problems führen wenn ich den mysql code umbreche? (denke aber nicht da ich den code ja sonst nirgends umbrechen musste.)
      mfg

      Kommentar


      • #4
        OffTopic:
        Danke, ich hatte nur soo lange nicht mehr gemotzt , dass ich das sofort mal machen musste.

        Jetzt lese ich den Thread...

        Kommentar


        • #5
          Die folgende abfrage scheint nicht zu funkionieren,
          um das zu überprüfen machst du mal ein

          PHP-Code:
          $sql "SELECT entscheid FROM $datename 
          WHERE name = '
          $name1' or '$name2' or 'name3' or '$name' ORDER BY datum";
          echo 
          $sql
          und postest die Ausgabe.

          Fällt dir da schon was auf? wenn nicht, prüfe die Query in phpMyAdmin. Was passiert nun?

          Kommentar


          • #6
            also, gebe ich in phpmyadmin

            SELECT entscheid
            FROM `doodle_dat_name`
            WHERE name = 'Christoph P.'
            LIMIT 0 , 30

            ein zeigt er alle eintscheide an...

            gebe ich im code:
            PHP-Code:
            $sql mysql_query ("SELECT entscheid FROM $datename 
            WHERE name = '
            $name1' or '$name2' or 'name3' or '$name' ORDER BY datum");
            echo 
            $sql
            ein gibt er: "Resource id #6" aus

            Kommentar


            • #7
              Augen auf!

              1. Ist mein Code ein anderer als deiner!
              2. zum anderen hat dein Quelltext mindestens 3 "or" im Query. Die Query, die du in MyAdmin ausführst, hat kein einziges or. Was soll das?

              Kommentar


              • #8
                ou sorry. hab ich automatisch gemacht...
                bei
                PHP-Code:
                SELECT entscheid FROM doodle_dat_name 
                WHERE name 
                'Christoph P.' or 'Christoph P.' or 'name3' or 'Christoph P.' ORDER BY datum 
                gibt er: SELECT entscheid FROM doodle_dat_name WHERE name = 'Christoph P.' or 'Christoph P.' or 'name3' or 'Christoph P.' ORDER BY datum

                aus...


                gebe ich

                SELECT entscheid
                FROM doodle_dat_name
                WHERE name = 'Christoph P.'
                OR 'Christoph P.'
                OR 'name3'
                OR 'Christoph P.'
                ORDER BY datum
                LIMIT 0 , 30

                in phpmyadmin ein kommt das richtige bei raus...

                Kommentar


                • #9
                  korrigier mal nebenbei das "name3", bevor ich den code weiter lese.

                  Kommentar


                  • #10
                    OffTopic:
                    schon passiert


                    kann es sein dass eine tabelle einfach kaputt ist?
                    (obwohl es in phpmyadmin ja funktioniert :S:S)
                    Zuletzt geändert von melodylion; 23.04.2007, 18:13.

                    Kommentar


                    • #11
                      dann schalteste als nächstes das error_reporting() auf E_ALL und behebst ALLE Fehler!

                      Kommentar


                      • #12
                        da kommen nur

                        Notice: Undefined variable: namedess1 in /home/www/web207/html/beach/editplayer.php on line 55
                        >

                        dabei raus (halt in jeder zeile in der namedess1 gebraucht wird...)

                        obwohl diese abfrage:

                        PHP-Code:
                        $namedess mysql_query ("SELECT entscheid FROM $datename WHERE name = '$name1' or '$name2' or '$name3' or '$name' ORDER BY datum");

                        while (
                        $namedessrow mysql_fetch_array($namedess))    {
                            
                        $namedess1[$dessval] = $namedessrow['entscheid'];
                            
                        $dessval++;

                        ja funktionieren sollte... oder übersehe ich da was¿
                        Zuletzt geändert von melodylion; 23.04.2007, 18:23.

                        Kommentar


                        • #13
                          Nanana,

                          1. Code wieder umbrechen
                          2. Testausgaben (wird die while schleife wirklich durchlaufen, was gibt mysql_num_rows() zurück)
                          3. Sicher dass die Query nicht eher lauten sollte

                          WHERE name = '$name1' or name = '$name2' or name = '$name3' or name = '$name'


                          da kommen nur

                          Notice: Undefined variable: namedess1 in /home/www/web207/html/beach/editplayer.php on line 55

                          dabei raus
                          Na, das ist doch das beste Zeichen dafür, dass die while schleife gar nicht durchlaufen wird.

                          also nochmal die query überprüfen.

                          Kommentar


                          • #14
                            also, habe das problem gefunden. weiss aber nicht woran es liegt.
                            1. scheint der variablenname '$name1' nicht gut zu sein, nehme ich statt dessen '$namee' funtkioniert es im neuen code.
                            nun übergebe ich:

                            /editplayer.php?name=Christoph=P.

                            das heisst ich wandle das leerzeichen in ein '=' um.
                            und im programm wandle ich es zurück...:


                            PHP-Code:
                            $name $_GET["name"];
                            $namee ereg_replace("=","&nbsp;",$name);
                            $name ereg_replace("="," ",$name); 
                            PHP-Code:
                            $entscheid mysql_query ("SELECT entscheid 
                            FROM 
                            $datename 
                            WHERE name = '
                            $name'
                            ORDER BY datum"
                            );

                            while (
                            $namedess mysql_fetch_array($entscheid))    {
                                
                            $namedess1[$i] = $namedess['entscheid'];
                                
                            $i++;

                            folgendes hat mich '$name1' nicht funktioniert:

                            PHP-Code:
                            echo "Name: <input name =\"name\" size =\"20\" maxlength =\"20\" value=".$namee."><br>"

                            greetz

                            Kommentar


                            • #15
                              /editplayer.php?name=Christoph=P.
                              Quatsch. Leerzeichen wird über die URL Parameter automatisch umgewandelt wird.
                              PHP-Code:
                              $namee ereg_replace("=","&nbsp;",$name);
                              $name ereg_replace("="," ",$name); 
                              str_replace ist besser
                              folgendes hat mich '$name1' nicht funktioniert:
                              Glaube ich nicht. ich gehe mal davon aus das du $name1 irgendwo löscht / überschreibst.
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X