mysql_num_rows mit GET

[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 „

Diese Seite existiert nicht - Fehler 404

“; }
?>[/PHP]
Ich weiß ehrlich gesagt nicht wo ein Fehler ist? Aber er zeigt dauernd „Diese Seite existiert nicht - Fehler 404“ an.

Liefert er da überhaupt Ergebnisse?

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.

Ich glaube er meinte damit seine Fehlermeldung.

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:

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 „

“;

print_r($_GET);

echo „

“;[/CODE]
und zeig mal, was da raus kommt.

btw. ist mir aufgefallen:

$getcontent = mysqli_query("SELECT content FROM cn_cms_pages WHERE ID='".$_GET['ID']." ' ");
$getpage= mysqli_query("SELECT ID FROM cn_cms_pages WHERE ID='".$_GET['id']." ' ") ;

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

//ich

Ich konnte nun mal den Fehler ungefähr eingrenzen, undzwar hat er ein Problem beim Aufbau zur Datenbank

Brauchst du dabei Hilfe? Poste sonst einfach mal den Fehler.

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 „

Diese Seite existiert nicht - Fehler 404“;
}[/PHP]

Hey,

Meinst und das der PHP Code in der Datenbank nicht ausgeführt wird?

http://php.net/manual/de/function.eval.php

ggf. Musst du aber erst <?php ... ?> aus deinem Text fischen um das dann auszuführen.

//ich

[PHP]if (!$_GET[‚id‘])
{
$_GET[‚id‘] = „1“;
}
[/PHP]

Dort kannst du auch die isset() und empty() Funktion nutzen. :wink: