Ankündigung

Einklappen
Keine Ankündigung bisher.

select from / like nur eine Ausgabe statt mehrere

Einklappen

Neue Werbung 2019

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

  • select from / like nur eine Ausgabe statt mehrere

    Hallo liebes PHP Forum,

    ich möchte folgendes tun. Ich bin momentan an einer Suchfunktion dran und müsste die komplette 1. Spalte einer Tabelle auslesen.

    Sagen wir mal die Werte für die 1. Spalte sind folgende:

    -phpforum
    -phphelden
    -phpanfänger
    -phpnewbies

    Würde ich jetzt "php" als suchwort eingeben würde ich gerne alle der oben angegeben Werte haben.

    Das ist mein Code der aber nur einen Wert ausgibt ( Den ersten den er finden )

    PHP-Code:
     $ChampName $_POST['ChampName']; 
         
        
    $ergebnis mysql_query("SELECT * FROM counterlist WHERE Champ LIKE '%$ChampName%' Group BY Champ") or die(mysql_error());
        
        if(
    $ausgabe mysql_fetch_assoc($ergebnis))
            {
            
    $resultchampion $ausgabe['Champ'];
            
    //Ab hier nur noch Ausgabe

    echo "<a href=\"/champions/$resultchampion\">$resultchampion</a>"
            }
        else 
            { echo 
    "Es wurde kein Champion unter den Namen \"<u>$ChampName</u>\" gefunden.<br /> 
            Bitte versuche es mit einem anderen namen.<br /> 
            <a href='index.php'>Zur&uuml;ck!</a>"

        } 
    Der Code sieht etwas komisch aus und mag an einigen Stellen sinnlos vorkommen wie z.B. "$resultchampion" aber ich versuche schon 3-4 std da was auf die Reihe zu bekommen deshalb bitte nicht wundern ^^

    Mit freundlichen Grüßen
    Mugluge


  • #2
    Moin und willkommen im Forum.

    PHP-Code:
    if($ausgabe mysql_fetch_assoc($ergebnis)) 
    Damit holst du dir nur das erste Resultset deiner Abfrage. Um an alle zu kommen, musst du eine Schleife benutzen.

    zudem:
    Standardtext für die Datenbankverbindung:
    Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
    Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Zitat von Mugluge Beitrag anzeigen

      $ergebnis = mysql_query("SELECT * FROM counterlist WHERE Champ LIKE '%$ChampName%' Group BY Champ") or die(mysql_error());
      [/PHP]

      Neben den anderen Hinweisen: das GROUP BY ist sowohl sinnlos als auch syntaktisch falsch. Select * verwendet man nicht in produktivem Code.
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar

      Lädt...
      X