SELECT mit Variable klappt nicht

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

  • ArSeN
    antwortet
    ... und trozdem wird man hier angemacht ...
    Wo denn?

    Hättest du die Regeln vorher gelesen und ein bisschen sinnvoll debugt, wärst du auch von alleine drauf gekommen ohne hier den unrelevanten Teil zu posten und dich dann zu beschweren obwohl du das Problem bereits gelöst hast.

    Einen Kommentar schreiben:


  • Souli
    antwortet
    Sorry für mein 'unvollständiges' Posting.
    Da formuliere ich es schon so verständlich wie möglich,
    da benutze ich schon die TAGs für den PHP-Code
    und trozdem wird man hier angemacht, als sei man ein Kind.

    Nun ja, wie dem auch sei.

    Der Fehler lag in einem HTML-Abschnitt, den ich nicht postete.
    Dort benutze ich ein Pulldownmenü, dass mit DB-Content
    gefüllt wird. Es gibt also das TAG für select und dazu natürlich
    auch das TAG option.
    Und genau da hakte es.

    In meiner Schleife zum Befüllen des Menüs habe ich nur am
    Anfang und am Ende ein option-TAG gesetzt.
    Dabei muss ja für jedes ins Menü eingelesene Element
    ein einzelnes option-TAG generiert werden.

    Jetzt läuft es so wie es soll.

    THX
    Souli

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Die Testausgaben werden es zeigen...

    Einen Kommentar schreiben:


  • ArSeN
    antwortet
    Hast du vielleicht bei deinem Eingabeforumular ne Leertaste versehentlich angehängt oderso?

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Keine Lust dir die Regeln noch mal zu erklären, lies gefälligst den entsprechenden Regel-Thread!

    PHP-Code:
    <?

    error_reporting(E_ALL);

    include ('connect.php');

    var_dump($_POST);

    $ns = $_POST['notenschluessel'];
    echo 'ns = ' . $ns;

    echo $sql = 'SELECT v6,b6 FROM notenschluessel WHERE nsbez="' . $ns . '"';
    $res = mysql_query($sql)
      or die(mysql_error());

    while($row = mysql_fetch_assoc($res))
    {

      echo $row['v6'];    //ersten Wert ausgeben
      echo $row['b6'];    //zweiten Wert ausgeben
      
    }
        
    include ('close.php');

    ?>
    was passiert? (komplette) ausgabe?
    OffTopic:
    Freu dich auf SQL-Injections...

    Einen Kommentar schreiben:


  • onemorenerd
    antwortet
    Bitte lies unsere Regeln. Dort steht auch, wie man mit mysql_error() umgeht und dass man sich zum Debuggen die fertig zusammengesetzte Query ausgeben lassen sollte.

    Übrigens: mysql_real_escape_string()!

    Einen Kommentar schreiben:


  • Souli
    hat ein Thema erstellt SELECT mit Variable klappt nicht.

    SELECT mit Variable klappt nicht

    Hallo Leute,
    heute habe ich ein Problem, dass ich nicht wirklich nachvollziehen kann.

    Erstmal noch kurz die Versionen, die ich einsetze:
    - Apache: 2.2.3
    - PHP 5.2.0
    - mySQL 5.0.27

    Folgende Situation:
    Ich gebe Daten in ein Formular ein, druecke einen Button und schicke alles an eine
    Seite, die dann eine Auswertung der Daten vornimmt. Bis hier klappt alles.

    Die Seite zum Auswerten sieht im Hauptteil so aus:

    PHP-Code:
    <?
        include ("connect.php");
                
        echo "notenschluessel=".$_POST['notenschluessel'];            
        $ns = $_POST['notenschluessel'];
        echo "<br>ns=".$ns;
        //$ns='IHK';
                
        $ausgabe = mysql_query("SELECT v6,b6 FROM notenschluessel WHERE nsbez='$ns'");
        $x=1;
        while($data2 = mysql_fetch_assoc($ausgabe))
        {
            foreach ($data2 as $wert[])
            {
                $wert[$x];
            }
        }
        echo $wert[0];    //ersten Wert ausgeben
        echo $wert[1];    //zweiten Wert ausgeben
        
        include ("close.php");
    ?>
    Ich uebergebe die Variable $notenschluessel. Diese wird auch korrekt ausgegeben (Ausgabe: IHK).
    Dann weise ich den Wert von $notenschluessel der Variable $ns zu. (Damit ich nicht so viel tippen muss *g*)
    Danach gebe ich zum Testen die Variable $ns aus. Es wird der Wert korrekt angezeigt (Ausgabe: IHK).

    Die auskommentierte Zeile beachten wir jetzt noch nicht.

    Im nächsten Schritt waehle ich die Spalten v6 und b6 meiner Tabelle notenschluessel.
    Ich moechte aber nur die Daten ausgegeben haben, wo die Spalte nsbez dem Wert der
    Variable $ns entspricht.
    Wenn in der Spalte nsbez der Eintrag IHK vorhanden ist (und das ist er), dann sollen die Werte der
    Spalten v6 und b6 ausgegeben werden.

    Das klappt nicht! Ich bekomme gar nichts angezeigt, also auch keine Fehlermeldungen etc.

    Wenn ich nun in der Zeile, die auskommentiert ist, die beiden Slashes (//) entferne und die Zeile
    somit einbinde, weise ich der Variable $ns den Wert IHK zu.
    IHK ist ein Eintrag in der DB in der Spalte nsbez.

    Jetzt funktoniert die Ausgabe !
    Ich bekomme meinen $wert[0] und meinen $wert[1] ausgegeben.

    Woran liegt das?
    Wieso muss ich der Variable $ns erst eine Zeichenkette zuweisen?

    Geht es nicht auch so, wie ich es eigentlich vorhabe?

    Danke
    Souli
Lädt...
X