PHP Variabel undeffiniert

Ich führe einen SQL Befehl aus. Dieser gibt alles ganz normal aus. Wenn ich nun aber in die PHP error files schaue, steht dort das der Index in dem Array nicht existiert.

SQL Befehl:

$ergebniss = array();
$url=$_SERVER['REQUEST_URI']; // kontrolliert, gesichert usw. für die Datenbank (hier vereinfacht für die Darstellung geschrieben)
// [...]
// $url = 'index' (wäre z.B. der Inhalt)
$sql  = "SELECT `id`,`url`,`status` FROM `get_url` WHERE `status`='1'";
$sql .= " AND `url`='".$url."'";
--> Datenbank Abfrage
 foreach($DBresult as $row=>$value){
  $ergebnis[$row]=$value;
 }

Der Code erzielt das selbe Resultat, wie der eigentliche Code, ist nur extrem vereinfacht.

Was nun kommt ist komisch, wenn man sich das ganze Ausgeben lässt:

if(isset($ergebnis['url']))echo 'Variable gefunden<br />'; // wird ausgegeben
if($ergebnis['url']!='')echo 'hat einen Inhalt'; echo '<br />'; // wird ausgegeben <-------
echo '<pre>';print_r($ergebnis);echo '</pre>'; // gibt das komplette Array aus
exit;

(Alle "echo"s und “print_r” Befehle werden ganz normal ausgegeben)
Wenn ich nun aber in die PHP error files schaue, steht dort drinnen "Uncaught ErrorException: Undefined index: url in (xxxx [line: 2 : if($ergebnis[‘url’]!=’’)echo ‘hat einen Inhalt’; ])"
Wenn ich nun in dem $sql Befehl, die 2. Zeile (url=$url) auskommentiere, entsteht dieser Fehler nicht.

Hat jemand dafür eine Lösung und vielleicht gleich noch eine Erklärung für diesen komischen Fehler?

Das ganze läuft auf einen localen Testserver: Windows | PHP 7.0.9 | 10.1.16-MariaDB

So sollte der Fehler nicht mehr kommen:
https://bw5rws.tk/codeshare/?id=48
Zum Pruefen,ob eine Variable einen Inhalt hat,nutzt man normalerweise empty() oder !empty().
Das hab ich auch gleich korrigiert,sollte aber nicht die Fehlerursache sein.
Die Fehlerursache war wahrscheinlich,dass du immer pruefst,ob die Variable einen Inhalt hat.
Bei isset() sollte kein Fehler kommen,wenn eine Variable nicht gesetzt ist.
Ob sie auch einen Inhalt hat,solltest du aber nur pruefen,wenn du schon weisst,dass sie einen Inhalt hat,ansonsten kannst du dir das sowieso sparen.
Dieser Test koennte den Fehler ausloesen,wenn die Variable gar nicht existiert.
Ich hab mal nur deinen unteren Code korrigiert,im oberen finde ich so einen Fehler nicht.

Ok danke das war ein Denk Fehler.

Der Fehler ist das nicht. Durch die Verbesserung sagt er mir nun, das der Parameter “$ergebnis[‘url’]” nicht existiert.
Aber wenn ich in dem SQL Befehl die 2. Zeile weg nehme, oder einfach “$url=‘index’” schreiben, z.B., dann gibt er auch nicht mehr den “Undefined index” aus.

Selbst wenn ich die “$_SERVER[‘REQUEST_URI’]” direkt in die SQL Abfrage rein schreibe, gibt er den Fehler aus, obwohl er den Datensatz in den Array “$ergebnis” ein liest, welchen man sich auch mit print_r ausgeben (inkl. der value zu dem index) lassen kann (auch wenn “empty” sagt, das der Index eigentlich nicht gesetzt ist).