kointa: MySQL: & Zeichen im Namen und $_GET liefert nur String vor &

Hi all,

ich habe folgendes Problem.
Ich übergeben meiner URL beim anklicken einer Kategorie das Query ?subcat=xyz und lese das Query dann auf der neuen Seite aus und lade die entsprechenden Einträge aus der SQL Tabelle.

Jetzt habe ich ein Feld in der Tabelle welches den Namen und den Autor des Files angibt, beide sind vom typ VARCHAR. Wenn ich jetzt aber einem Video z.B. den Artist "Schmidt & Pocher" gebe, dann wird meinem Query zwar "Schmidt & Pocher" übergeben, aber die Abfrage des Query mit $_GET liefert mir nur den String "Schmidt", wodurch natürlich die Abfrage der subcat nicht funktioniert und mir einfach nichts angezeigt wird.

Jetzt die Frage, das & Zeichen scheint im typ varchar nicht erlaubt zu sein, welcher typ erlaubt denn das & zeichen ? habs schon mit TEXT probiert, aber das geht auch nicht. Wenn zwichen den beiden Wörtern nur ein leerzeichen ist wie bei "Schmidt und Pocher" dann geht es.

so übergeb ich das query:
<a href=\"?subcat=$row->autor\">» $row->autor ($anzahl)</a> (die abfrage funktioniert einwandfrei, weshalb ich hier nicht den ganzen code poste)

auslesen des query:

$subcat = $_GET['subcat'];  
...SELECT * FROM $tabelle WHERE autor = '$subcat'...
~~~ (ebenfalls nciht der ganze code)  
  
Hoffe ihr versteht mein Problem und habt ne Lösung.  
Danke schonmal für jegliche Hilfe.  
  
grüße  
kointa  

  1. Hello,

    so übergeb ich das query:
    <a href=\"?subcat=$row->autor\">» $row->autor ($anzahl)</a> (die abfrage funktioniert einwandfrei, weshalb ich hier nicht den ganzen code poste)

    das ist PHP-Code - sieh dir den HTML-Code an. Zeige den HTML-Code dem HTML-Validator. Schau insbesondere diese Linkstelle an & überlege genau, ob dir dabei nichts auffällt

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)
    1. das ist PHP-Code - sieh dir den HTML-Code an. Zeige den HTML-Code dem HTML-Validator. Schau insbesondere diese Linkstelle an & überlege genau, ob dir dabei nichts auffällt

      Danke. Ich habe jetzt versucht das Ampersand als &amp; in der Datenbank zu speichern, aber in der URL wird es dann wieder als & angezeigt.
      Muss ich das & vll irgendwie beim auslesen ersetzen ? Sorry aber ich steh echt aufm Schlauch wie ich das lösen kann.

      1. Hi,

        Danke. Ich habe jetzt versucht das Ampersand als &amp; in der Datenbank zu speichern, aber in der URL wird es dann wieder als & angezeigt.
        Muss ich das & vll irgendwie beim auslesen ersetzen ? Sorry aber ich steh echt aufm Schlauch wie ich das lösen kann.

        Wir haben gerade einen recht ausfuehrlichen Thread zum Thema kontextgerechter Kodierung, den solltest du mal durchlesen: https://forum.selfhtml.org/?t=182897&m=1210949

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“