• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mysql_num_rows mit GET

Nightloewe

Neues Mitglied
PHP:
  if (!$_GET['id'])
  {
    $_GET['id'] = "1";
  }
  $getpage= mysqli_query("SELECT ID FROM cn_cms_pages WHERE ID='".$_GET['id']." ' ") ;
  if(mysqli_num_rows($getpage)==1) {
  $getcontent = mysqli_query("SELECT content FROM cn_cms_pages WHERE ID='".$_GET['ID']." ' ");
  echo $getcontent;
  } else  { echo "<h2>Diese Seite existiert nicht - Fehler 404</h2>"; }
  ?>
Ich weiß ehrlich gesagt nicht wo ein Fehler ist? Aber er zeigt dauernd "Diese Seite existiert nicht - Fehler 404" an.
 
HTTP Fehler 404 besagt, dass dein Webserver keine Datei finden konnte. Heißt also, dass die Datei die du per URL aufrufen wolltest nicht gefunden wurde. Alle bist zum ? ist also keine ECHTE datei, bzw. ist nach verarbeitung per Webserver keine echte Datei.

Guck dir mal die Links in deiner transaction.log an. Dort solltest du genau sehen wo der 404er auftrat und nach welber Seite dort gesucht wurde. Falls du keine ahnung hast wovon ich rede, oder dein Webhoster keine Log dateien abietet solltest du dich dringendst zu der funktionsweise von Webservern informieren, oder dir einen anderen Webhoster suchen.
 
Typischer Kandidat für:

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Das gibt er als Fehlermeldung bei der mysqli_query() aus:
Code:
Notice: Undefined index: id in /var/www/vhosts/domain.de/httpdocs/beta/cms/test.php on line 26 Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/vhosts/domain.de/httpdocs/beta/cms/test.php on line 30
 
Hey,

Notice: Undefined index: id
Sagt ja fast alles, die Index "id" ist nicht in deinem Array vorhanden.

Machmal folgendes, bitte:
Code:
echo "<pre>";

print_r($_GET);

echo "</pre>";
und zeig mal, was da raus kommt.

btw. ist mir aufgefallen:
Code:
$getcontent = mysqli_query("SELECT content FROM cn_cms_pages WHERE ID='".$_GET['ID']." ' ");
Code:
$getpage= mysqli_query("SELECT ID FROM cn_cms_pages WHERE ID='".$_GET['id']." ' ") ;

$_GET['ID'] und $_GET['id'] sind 2 verschiedene Variablen.

//ich
 
Hallo, undzwar habe ich in einer Datenbank die ganzen Pages gespeichert und jetzt hab ich das Problem, das PHP Code als Kommentar angezeigt wird, HTML funktioniert aber und soll auch funktionieren.

Hier der Code:
PHP:
  if (!$_GET['id'])
  {
    $_GET['id'] = "1";
  }
  $sql = "SELECT id FROM cn_cms_pages WHERE ID='".$_GET['id']." ' ";
  $query = mysqli_query($con, $sql);
  if(mysqli_num_rows($query)==1)
  {
  $getcontent = mysqli_query($con, "SELECT content FROM cn_cms_pages WHERE id='".$_GET['id']." ' ");
  $row = mysqli_fetch_object($getcontent);
  echo($row->content);
  } else  {
  echo "<h2>Diese Seite existiert nicht - Fehler 404";
  }
 
PHP:
if (!$_GET['id'])
  {
    $_GET['id'] = "1";
  }

Dort kannst du auch die isset() und empty() Funktion nutzen. ;)
 
Zurück
Oben