Eine Art "Template"

  • Themenstarter Themenstarter Arthas
  • Beginndatum Beginndatum
A

Arthas

Sorry als aller erstes für den Titel. Aber leider kenne ich mich mit PHP so gut wie gar nicht aus, und ich weiss auch nicht genau, wie ich mein Problem "betiteln" soll.

In der FAQ steht schon was über Templates, ich weiss, allerdings habe ich n icht genau mein Problem gefunden.

Ich füge einfach mal den PHP Code, den ich von einem Kontakt (mit dem ich jetzt keinen Kontakt mehr habe) für eine Webseite bekommen habe.

PHP:
<?php

 {
	$notfound = false;
	if(!isset($w)) { $notfound = true; }
	$result = mysql_query("SELECT * FROM database WHERE id = $w");

	if($notfound == false && mysql_num_rows($result) != 1)
	{
		$notfound = true;
	} else {
		if(mysql_num_rows($result) > 0)
	{
		$row = mysql_fetch_array($result);
		mysql_free_result($result);
	}
 }

 if($notfound == true)
 {
?>

LALALALA

<?php
         die();
      }

?>

		<div class="caption"><?php echo $row['name'] ?></div><br />


<?
      }
?>

Damit kann ich, soviel weiss ich schonmal bzw benutze es auch, eine Seite (eine Art Template) erstellen, bei der ein bestimmter Inhalt angezeigt wird, wenn ich die Datei mit "index.php?w=01" aufrufe.
Das klappt auch alles.

Nun will ich aber, wenn keine Variable angegeben wird (also nur "index.php"), dass dann der Inhalt "LALALALA" angezeigt wird. Dieser Inhalt soll etwas ganz anderes sein, als der, der mit Variable angezeigt wird.

Auch dieser Inhalt WIRD angezeigt, allerdings immer mit Fehlermeldung in der ersten Zeile.
Da ich wie gesagt, nicht wirklich viel über PHP weiss (ist, nehm ich an, leicht zu lösen), würde ich mich wahnsinnig darüber freuen, wenn mir jemand zeigen könnte, was ich im obigen Code umschreiben muss, damit nicht mehr "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/data.php on line 12" als Error ausgeben wird.

Danke im Voraus
 
supplied argument is not a valid MySQL result resource
Das heißt, das der Fehler in deinem Query liegt.
Versuch mal, die Variable $w im Query zusätzlich in einfache Anführungsstriche zu schreiben:
PHP:
<?php
    $result = mysql_query("SELECT * FROM database WHERE id = '".$w."'") OR die(mysql_error());
?>
Das sollte funktionieren. Ansonsten, überprüfe mal, ob die Spalte wirklich "id" bzw. die Tabelle wirklich "database" heißt. (Groß- und Kleinschreibung sind zu unterscheiden...)
 
du kannst dir auch die mysql-Fehlermeldung ausgeben:

PHP:
$result = @mysql_query("SELECT * FROM database WHERE id = $w"); 

//Fehler abfangen
( ! is_resource($result) ) ? ( die("mySQL-Fehler: ".mysql_error()) ) : NULL;

if($notfound == false && mysql_num_rows($result) != 1)
 
Zurück