# Unbekannter Fehler im Code. Bildschirm weiß



## moritz115 (7. Mai 2010)

EDIT *Bitte letzten Post angucken! (auf seite 4) Den rest müsst ihr dafür nicht zwingend durchlesen*


Hallo,

ich habe ein Problem. Ich habe einen PHP-Code. Leider bleibt der Bildschirm einfach weiß. 


```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ("$db1") or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: <mailto>info@ein-mal-page.de</mailto>. Vielen Dank!");

$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

?>
<title> <?php 
$name_ausgeben;
?>
 - ein-mal-page.de
</title>
</head>
<body>

<?php

$inhalt_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_hab = mysql_query($inhalt_holen) or die (mysql_error());
$inhalt_ausg = mysql_fetch_row($inhalt_hab) or die(mysql_error());
$inhalt_ausgeben = $inhalt_ausg[0];

$inhalt_ausgeben;





?>
</body>
</html>
```



Die $id ist aber besetzt und die Datenbankverbindung wird hergestellt. So viel weiß ich schonmal.
Aber woran liegt jetzt das Problem?

Vielen Dank für eure hilfe und mfg


----------



## Parantatatam (7. Mai 2010)

Menschen gibt es, die gibt es gar nicht. Du musst deine Werte natürlich noch mit *echo* ausgeben:

```
<?php
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ("$db1") or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: <mailto>info@ein-mal-page.de</mailto>. Vielen Dank!");

$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

$inhalt_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_hab = mysql_query($inhalt_holen) or die (mysql_error());
$inhalt_ausg = mysql_fetch_row($inhalt_hab) or die(mysql_error());
$inhalt_ausgeben = $inhalt_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $name_ausgeben; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php echo $inhalt_ausgeben; ?>
</body>
</html>
```

PS: Ich habe dein Skript noch derart verändert, dass die ganzen Datenbankabfragen vor der Bildschirmausgabe durchgeführt werden. Sollte man generell so lösen: erst Daten verarbeiten und dann ausgeben.


----------



## moritz115 (7. Mai 2010)

Hallo,

vielen Dank. Das war ein sehr dummer Fehler  Peinlich. 
Klappt 

Vielen Dank!


----------



## moritz115 (9. Mai 2010)

*PHP, Was gibt MySQL zurück, wenn Eintrag nicht vorhanden ist?*

Hallo,

ich habe diesen Code:


```
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];
```

Was gibt mysql bei $name_ausgeben zurück, wenn es keinen Eintrag mit der ID $id gibt?

Vielen Dank und mfg
moritz115


----------



## CookieBuster (9. Mai 2010)

Es wird ein Leeres Result zurück gegeben, bzw. ein Ergebnis mit 0 Reihen.

Das heißt man kann diesen Fall, durch mysql_num_rows() abfangen.


----------



## ZodiacXP (9. Mai 2010)

mysql_fetch_row nutzen!
Dies gibt _false_ zurück, wenn keine weitere Zeile vorhanden ist.


----------



## moritz115 (9. Mai 2010)

Hallo,

also ich habe jetzt das:



```
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if (mysql_fetch_row($name_ausgeben) != false)
{

$inhalt_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_hab = mysql_query($inhalt_holen) or die (mysql_error());
$inhalt_ausg = mysql_fetch_row($inhalt_hab) or die(mysql_error());
$inhalt_ausgeben = $inhalt_ausg[0];
```


Weiter unten kommt noch ein else. Leider funktioniert das so nicht. Weißer Bildschirm... 
Muss aber an der if anweisung liegen, also das da iwie nicht false oder etwas anderes ausgegeben wird. Denn ohne if ging es


----------



## Maik (9. Mai 2010)

moritz115 hat gesagt.:


> Weißer Bildschirm


Ein weißer Bildschirm mit diesem Code?

Moment, da war doch erst kürzlich was...

Unbekannter Fehler im Code. Bildschirm weiß

Bitte keine Doppelposts im Forum zu ein und demselben Problem! Danke!



			
				Netiquette hat gesagt.:
			
		

> 12. Bitte erstelle keine Doppel-/Mehrfach-/Pushpostings. Dazu zählen insbesondere das Erstellen identischer Themen in mehreren unterschiedlichen Unterforen, das mehrfache oder erneute Einstellen eines bereits vorhandenen Themas, und das Posten von Beiträgen, die einzig und allein dem Zweck dienen, das entsprechende Thema in der Themenauflistung wieder weiter oben zu platzieren (sog. „Thread Pushing“). Derartige Beiträge werden restlos gelöscht. Sollte der Eindruck bei unseren Moderatoren entstehen, dass wissentlich gegen diesen Punkt verstoßen wurde, hat dies die unbegrenzte Sperrung des Accounts zur Folge.



Zitat-Quelle: http://www.tutorials.de/netiquette.html

Die beiden Themen werden dann mal zusammengetackert.

mfg Maik


----------



## ZodiacXP (9. Mai 2010)

Nachdenken.

mysql_fetch_row liefert false wenn der Result leer ist.
Woher kommt der Result? Von mysql_query.
Was verwendest du? Eine Variable mit primitiven Typ.


```
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id"; 
$name_hab = mysql_query($name_holen) or die (mysql_error()); 
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error()); 
$name_ausgeben = $name_ausg[0];
```

Such mal die Variable, welche mit mysql_fetch_row bereits arbeitet und schreibe deine if diesbezüglich um.


----------



## moritz115 (9. Mai 2010)

Hallo,

so geht es auch nicht.... 



```
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if (mysql_fetch_row($name_ausg) != false)
{

$inhalt_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_hab = mysql_query($inhalt_holen) or die (mysql_error());
$inhalt_ausg = mysql_fetch_row($inhalt_hab) or die(mysql_error());
$inhalt_ausgeben = $inhalt_ausg[0];
```



Und so auch ni*ch*t:



```
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ($name_ausg != false)
{

$inhalt_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_hab = mysql_query($inhalt_holen) or die (mysql_error());
$inhalt_ausg = mysql_fetch_row($inhalt_hab) or die(mysql_error());
$inhalt_ausgeben = $inhalt_ausg[0];
```


Was ist falsch?... 


Danke für eure Hilfe!


----------



## Daniel0108 (9. Mai 2010)

Es könnte daran liegen das du die Variablen doppelt definierst...
Gib ihnen nach der if-Abfrage andere namen. zb $inhalt_two_hab
Hoffe das hilft,
lg
Daniel


----------



## Da_Chris (9. Mai 2010)

mh wie wärs mal mit debugging?
Hellsehen kann hier keiner...
pack mal ein 

```
echo $variable;
exit;
```
An bestimmten stellen im code und versuche mal schritt für schritt nachzuvollziehen. Wobei du $variable natürlich durch die zu testende variable ersetzt.

Ansonsten empfehle ich dir mal ein wenig mehr über Debugging durchzulesen damit du nicht immer wegen den gleichen Fehlern hier nachfragen musst.


----------



## moritz115 (10. Mai 2010)

Hallo,

wenn ich das so mache:


```
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ($name_ausg != false)
{

$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
```


gehts leider auch ni*ch*t  Ich versteh es ni*ch*t...


----------



## Da_Chris (10. Mai 2010)

Joa was soll ich dazu nur sagen.
hab dir ja gesagt dass du mal debuggen sollst. 
Vielleicht hilft es auch mal vorübergehend die Geschweifte Klammer wieder zu schliessen....
Aber ich glaube im Zuge der Lernresistenz werden derartige Fragen sich zukünftig dennoch häufen.


----------



## Yaslaw (10. Mai 2010)

warum setzt du deine id in ' ?
Du wirst ja wohl nicht so b***** sein die id als String zu speichern....

Ansonsten:

Die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.

PHP MySQL Debug Queries

Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das Ausgegebe SQL-Statement ins Forum.


----------



## moritz115 (11. Mai 2010)

Hallo,

das Tutorial von yaslaw hat mir geholfen. Jedoch passiert bei dem COde:


```
<?php
error_reporting(E_ALL);
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: info@ein-mal-page.de Vielen Dank!");
 
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ($name_ausgeben != false)
{
$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo "$name_ausgeben"; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php 
echo "$inhalt_two_ausgeben"; 
}
else
{
?>
<img src="http://www.tutorials.de/forum/images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
}


?>
</body>
</html>
```


nichts, wenn die ID von get in der Datenbank nicht vorhanden ist. Wenn der eintrag nicht vorhanden ist, soll eigentlich der else code kommen. Wenn die ID vorhanden ist, klappt alles und der erste code wird ausgeführt.

Wo liegt jetzt der Fehler?
Vielen Dank für die Hilfe
mfg
moritz115


----------



## Daniel0108 (11. Mai 2010)

1.) Wenn dann ist $name_ausg FALSE weil das andere aus einem array ist
2.) mach mal var_dump($name_ausg); und danach var_dump($name_ausgeben); und sag uns was kommt....
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Halloarray(1) { [0]=> string(8) "gqadswew" } string(8) "gqadswew"


----------



## Daniel0108 (11. Mai 2010)

Das heißt er hat nicht false bekommen sondern:  gqadswew
Dann hast du was ausgelesen, was eh vorhanden war 
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Oh, ja, stimmt, das war orhanden. Aber das mit der id 3 nicht. Als ausgabe kommt garnichts. Quellcode:


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>
```


----------



## Daniel0108 (11. Mai 2010)

auch nicht bei var_dump?
wenn bei var_dump NULL kommt, dann musst du noch schreiben if(isset($variable)) 
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Da ist var_dump drin. Aber es kommt einfach garnichts. Ich habe das var_dump unter der if anweisung. Siehe hier:



```
<?php
error_reporting(E_ALL);
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: info@ein-mal-page.de Vielen Dank!");
 
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ($name_ausgeben != false)
{
$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo "$name_ausgeben"; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php 
echo "$inhalt_two_ausgeben"; 
}
else
{
?>
<img src="images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
}


var_dump($name_ausg);
var_dump($name_ausgeben);

?>
</body>
</html>
```


Danke und mfg


----------



## Daniel0108 (11. Mai 2010)

hmm... vllt ein error....
schreib mal error_reporting(-1) an den anfang 
lg
Daniel


----------



## moritz115 (11. Mai 2010)

> Parse error: syntax error, unexpected T_INCLUDE in /mnt/web3/22/95/52232095/htdocs/ein-mal-page/p.php on line 3



Aber die Datei include.php ist vorhanden... Und verbindung wird ja auch hergestellt. Hä?

Danke unf mfg


----------



## Daniel0108 (11. Mai 2010)

könnte es sein das du nach error_reporting(-1) ein strichpunkt(semikolon) vergessen hast?
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Oh ja, danke!
Also wenn ich simikolon ; setze, kommt nichts an fehler o.ä, einfach nur weißer bildschirm


----------



## Daniel0108 (11. Mai 2010)

dann mach das var_dump direkt nach der variablendeklaration...
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Danke, aber bei dem Code kommt weiterhin nichts:


```
<?php
error_reporting(-1);
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: info@ein-mal-page.de Vielen Dank!");
 
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];
var_dump($name_ausg);
var_dump($name_ausgeben);

if ($name_ausgeben != false)
{
$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo "$name_ausgeben"; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php 
echo "$inhalt_two_ausgeben"; 
}
else
{
?>
<img src="images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
}

?>
</body>
</html>
```


----------



## Daniel0108 (11. Mai 2010)

Dann benutze, wie ich schon vorher erwähnt hatte, isset().

```
if ((isset($name_ausgeben)) && ($name_ausgeben != false)) {
```
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Hallo,

hilft nichts  Ich bin verzweifelt...^^


Code:


```
<?php
error_reporting(-1);
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: info@ein-mal-page.de Vielen Dank!");
 
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ((isset($name_ausgeben)) && ($name_ausgeben != false)) { 
$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo "$name_ausgeben"; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php 
echo "$inhalt_two_ausgeben"; 
}
else
{
?>
<img src="images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
}

?>
</body>
</html>
```


Danke und mfg


----------



## Daniel0108 (11. Mai 2010)

Wenn die Spalte vorhanden ist, geht es dann?
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Ja, dann funktioniert alles!


----------



## Sven Mintel (11. Mai 2010)

Moin,

poste doch mal den Quelltext dieser Seite mit nichts.

Und poste auch die config.php(etwaige Zugangsdaten vorher unkenntlich machen).


----------



## Daniel0108 (11. Mai 2010)

Er hat vorher schon den quellcode gepostet.. fehler sind auch keine drinnen.. mit mysql_error und error_reporting debugt....
Es hat was mit der If-Anfrage zu tun...
Wenn die Variable leer wäre würde var_dump, NULL zurückgeben...
aber var_dump gibt nix zurück, das verwirrt mich...
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Hallo,

nochmal eine Übersicht. Die Seite, wenn die Spalte nicht vorhanden ist. Also mit der ID von GET


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>
```


Bei dem Code:


```
<?php
error_reporting(-1);
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: info@ein-mal-page.de Vielen Dank!");
 
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ((isset($name_ausgeben)) && ($name_ausgeben != false)) { 
$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo "$name_ausgeben"; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php 
echo "$inhalt_two_ausgeben"; 
}
else
{
?>
<img src="http://www.tutorials.de/forum/images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
}

?>
</body>
</html>
```


Was bringt es, wenn ihr die config seht? Wenn die Spalte vorhanden ist, funktioniert es doch. ABer hier:



```
<?php
	$host = "host";
	$user = "user";
	$passwd = "passwort";
	$db1 = "datenbankname"	
?>
```

Ich vermute auch, dass das Problem in der if anweisung liegt. Ist ja sehr warscheinlich. Aber das Problem ist wo^^ Wer kann helfen?
mfg
moritz115


----------



## Daniel0108 (11. Mai 2010)

moritz115 hat gesagt.:


> Hallo,
> 
> nochmal eine Übersicht. Die Seite, wenn die Spalte nicht vorhanden ist. Also mit der ID von GET
> 
> ...



Schreib doch auch vielleicht etwas in den body, dann wäre es nicht so leer 
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Wie du in diesem Code siehst, ist soll ja der COde von else ausgeführt werden, im body.
Code:



```
<?php
error_reporting(-1);
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns und schreibe uns diesen Hinweis. An: info@ein-mal-page.de Vielen Dank!");
 
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

if ((isset($name_ausgeben)) && ($name_ausgeben != false)) { 
$inhalt_two_holen = "SELECT `Inhalt` FROM `wwp_page` WHERE `ID` = $id";
$inhalt_two_hab = mysql_query($inhalt_two_holen) or die (mysql_error());
$inhalt_two_ausg = mysql_fetch_row($inhalt_two_hab) or die(mysql_error());
$inhalt_two_ausgeben = $inhalt_two_ausg[0];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo "$name_ausgeben"; ?> - ein-mal-page.de
</title>
</head>
<body>
<?php 
echo "$inhalt_two_ausgeben"; 
}
else
{
?>
<img src="images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
}

?>
</body>
</html>
```


----------



## Daniel0108 (11. Mai 2010)

Ja, nur wenn $name_ausgeben, sowieso leer ist(was vorher in der if anweisung kontrolliert wird), dann wird auch nix ausgegeben,...
schreib mal Hallo rein, anstatt $name_ausgeben zu echoen 
EDIT: 
Gerade gesehen das noch etwas ausgegeben werden müsste....
Schreib mal in den Body hallo dazu...
wenn das ausgegeben wird, stimmt nur diese variable im body net... (ich meine die $inhalt_two_ausgeben)
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Aber es soll ja nur der Teil ausgegeben werden:


```
?>
<img src="images/icons/cancel.png" width="16" height="16" alt="cancel.png" longdesc="http://www.ein-mal-page.de/images/icons/cancel.png" />
<?php
echo "Diese ein-mal-page ist nicht vorhanden."; ?>
    
<a href="index.php" target="index.php">Hier</a>
<?php
echo "kannst du dir kostenlos eine ein-mal-page erstellen!";
```


Denn die ID ist nicht vorhanden also wird das nach else  ausgegeben.


----------



## Daniel0108 (11. Mai 2010)

Stimmt, da hast du recht...
Dann muss es an der if-anweisung liegen... nur woran...
var_dump müsste doch irgendetwas... zb NULL ausgeben...
sonst MUSS ein fehler im code sein...
PS: wir wollten die config sehen, weil da vielleicht auch if-anweisungen oder anderes drinnen steht, was textausgaben verhindert...
lg
Daniel


----------



## moritz115 (11. Mai 2010)

Achso.

Naja, ich denke, hier müssen dann andere mal ihren Blick auf den Code werfen und ihren Ratschlag abgeben 

Vielen Dank und mfg
moritz115


----------



## Sven Mintel (11. Mai 2010)

Dein else-Abzweig greift nicht in dem Fall, dass keine Spalte gefunden wurde:


```
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
```
....dann ist spätestens beim Fett markierten Schluss.
Zum  else wird es nur in dem einen Fall kommen, wo das Feld *name* des gefundenen Datensatzes einem booleschen false entspricht(ohne Typenprüfung)


----------



## Sven Mintel (11. Mai 2010)

moritz115 hat gesagt.:


> Achso.
> 
> Naja, ich denke, hier müssen dann andere mal ihren Blick auf den Code werfen und ihren Ratschlag abgeben



Vor allem solltest du mal in ein Handbuch schauen und dich über Kontrollstrukturen und Debugging schlau machen, anstatt hier abwechselnd Code hinzuklatschen oder zu vermelden, dass es nicht geht.

Dein Skript hapert schon ab dieser fett markierten Zeile:

```
$id = "'".$_GET['id']."'";
$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];
```

Du prüfst überhaupt nicht, ob $_GET['id'] existiert, füllst daraus aber eine Variable, der du sogleich vetraust, als wäre sie wirklich gesetzt und lässt diese Variable auf deine DB los.


----------



## Daniel0108 (11. Mai 2010)

Sven Mintel hat gesagt.:


> Vor allem solltest du mal in ein Handbuch schauen und dich über Kontrollstrukturen und Debugging schlau machen, anstatt hier abwechselnd Code hinzuklatschen oder zu vermelden, dass es nicht geht.
> 
> Dein Skript hapert schon ab dieser fett markierten Zeile:
> 
> ...


Da hast du allerdings recht...
Wenn $_GET["id"] nicht existiert kommt ein großer böser fehler 
aber die mysql_error()´s müssten doch was ausgeben, oder?
Klär mich da bitte einmal auf 
lg
Daniel


----------



## Sven Mintel (11. Mai 2010)

Daniel0108 hat gesagt.:


> Da hast du allerdings recht...
> Wenn $_GET["id"] nicht existiert kommt ein großer böser fehler
> aber die mysql_error()´s müssten doch was ausgeben, oder?
> Klär mich da bitte einmal auf



Da kommt kein großer böser Fehler, sondern höchstens eine Notice wegen der undefinierten Variable $_GET['id']
da dieser Fall nicht abgefangen/geprüft wird, wird die Variable $id mit einem leeren String gefüllt
Das QUERY wird ganz normal ausgeführt.....


```
SELECT `name` FROM `wwp_page` WHERE `ID` = ''
```

Das QUERY liefert keine Ergebnisse...auch das wird nicht geprüft(mysql_num_rows())
mysql_fetch_row() wird auf den aktuellen Datensatz der Ergebnisliste angewandt:
Es gibt da aber keinen Datensatz 
Und in diesem Fall wird nicht etwa ein mysql-Fehler produziert, sondern lediglich ein false zurückgegeben.
 durch dieses false kommt es zu *die(mysql_error())* , da es aber keinen MYSQL-Fehler gab, erfolgt dort keine Ausgabe.
das, was er dort als Quelltext aus dem Browser gepostet hat, ist ein Standardtemplate des Browsers für einHTML-Dokument, wenn er ein Solches ohne irgendwelche Daten geliefert bekommt

Summa Summarum:
man könnte diese Zeile 
	
	
	



```
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
```
sinngemäss übersetzen in:

```
erstelle eine Variable wenn Datensatz vorhanden oder beende die ganze Sache und gebe einen leeren String aus mangels Mysql-Fehler
```


----------



## Daniel0108 (12. Mai 2010)

Sven Mintel hat gesagt.:


> Da kommt kein großer böser Fehler, sondern höchstens eine Notice wegen der undefinierten Variable $_GET['id']



Doch, wenn das leer ist stimmen alle mysql_querys nicht....
lg
Daniel


----------



## moritz115 (12. Mai 2010)

Hallo,

Danke, aber was meinst du genau was ich machen soll?

Danke und mfg


----------



## Dr Dau (12. Mai 2010)

Hallo!



moritz115 hat gesagt.:


> ```
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <HTML><HEAD>
> <META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
> ...


Falls es noch niemanden aufgefallen sein sollte --> dieser Quelltext kommt definitiv NICHT vom Script.

Spätestens bei
	
	
	



```
</BODY></HTML>
```
sollte es jedem auffallen.
Denn im Script steht
	
	
	



```
</body>
</html>
```
und ist vollkommen unabhängig davon ob die Datenbankverbindung/-abfrage klappt und/oder ob und wie die if/else Kontrollen greifen.

Daraus ziehe ich den einzig sinnvollen Schluss dass nicht das Script aufgerufen wird, sondern irgend etwas anderes.
Beispielsweise könnte es eine "blanko"-Error 404 Seite (Datei nicht gefunden) sein (und ja, es gibt Hoster die solche nichts aussagenden Fehlerseiten ausgeben --> alles nur eine Frage der Serverkonfiguration).

Gruss Dr Dau


----------



## moritz115 (12. Mai 2010)

Hallo,

das Script wird aufgerufen. Und ich habe Strato. Da kann man sich eine eigene Fehlerseite erstellen.
Es wird KEINE Fehlerseite aufgerufen! Denn wenn ein Dokument nicht vorhanden ist, sieht die Fehlermeldung anders aus als Weiß. Das habe ich ausprobiert!


Vielen Dank für eure Hilfe!


----------



## moritz115 (14. Mai 2010)

*mit if überprüfen, ob Datensatz mit ID xyz vorhanden*

Hallo,

ich habe schon gestern und heute Stundenlang google durchforstet und alle möglichen Codes zur Lösung meines Problems ausprobiert. Jedoch leider nichts geholfen 
Mein Problem:
Ich möchte mit einer if anweisung überprüfen, ob ein Datensatz mit der ID _$id _ vohanden ist. Also so:

if (Datensatz mit der ID $id vorhanden) {
Datensatz mit ID $id vorhanden
}
else
{
Datensatz nicht vorhanden
}


Ich finde zwar vieles, funktioniert aber nur halb. Wenn Eintrag vorhanden, gibt der etwas aus. Wenn Eintrag nicht vorhanden, gibt der nichts aus, obwohl der dies soll... -.-
Hoffentlich kann mir jemand helfen


----------



## timestamp (14. Mai 2010)

Hi

ich gebe dir hier jetzt mal eine Allgemeine Lösung.
Tabelle: (Beispiel: Telefonbuch)
id
Name
Nachname
Telefonnummer


```
error_reporting(E_ALL);
mysql_connect("localhost","user","password");
mysql_select_db("dbname");
$id = (isset($_GET["id"]))?$_GET["id"]:false;
$result = null;
if( !$id )
  die("Fehler: Keine ID angegeben");
else
  $result = mysql_query("SELECT * FROM Telefonbuch WHERE id = ".$id);
if( mysql_num_rows($result) == 1 ){
  echo "Datensatz mit ID {$id} gefunden:<br />";
  $row = mysql_fetch_array($result);
  echo  "{$row['Nachname']}, {$row['Name']} {$row['Telefonnummer']}<br />";
}
else
  echo "Kein Datensatz mit ID {$id} gefunden.";
```


----------



## moritz115 (14. Mai 2010)

Hallo,

danke. Gleicher fehler wie bei den COdes, die ich ausprobiert habe 
Code:


```
$id = (isset($_GET["id"]))?$_GET["id"]:false; 
$result = null; 
if( !$id ) 
  die("Fehler: Keine ID angegeben"); 
else 
  $result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id); 
if( mysql_num_rows($result) == 1 ){ 
  echo "Datensatz mit ID {$id} gefunden:<br />"; 
  $row = mysql_fetch_array($result); 
} 
else 
  echo "Kein Datensatz mit ID {$id} gefunden.";
```



Wenn die ID vorhanden ist, wird augegeben "Datensatz mit id ... gefunden". Aber wenn die ID nicht vorhanden ist in der Tabelle, bleibt der Bildschirm weiß.  Das heißt, dass else irgendwie nicht funktioniert!?

Wer kann helfen?
Danke und mfg


----------



## timestamp (14. Mai 2010)

Ok

dann kommt jetzt die Hardcore-Variante:

```
error_reporting(E_ALL);
ini_set("display_errors",1);
$id = (isset($_GET["id"]))?$_GET["id"]:false; 
echo "ID: ".var_export($id,true):" <br />";
$result = null; 
if( !$id ) 
  die("Fehler: Keine ID angegeben"); 
else 
  $result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id); 
echo "RESULT: ".var_export($result,true)." <br />";
echo "NUMROWS: ".var_export(mysql_num_rows($result),true)."<br />";
if( mysql_num_rows($result) == 1 ){ 
  echo "Datensatz mit ID {$id} gefunden:<br />"; 
  $row = mysql_fetch_array($result); 
} 
else 
  echo "Kein Datensatz mit ID {$id} gefunden.";
```


----------



## moritz115 (14. Mai 2010)

Danke! Aber:



> Parse error: syntax error, unexpected ':', expecting ',' or ';' in /mnt/web3/22/95/52232095/htdocs/ein-mal-page/p.php on line 24




Code wie oben. Aer hier nocheinmal:


```
$id = (isset($_GET["id"]))?$_GET["id"]:false;  
echo "ID: ".var_export($id,true):" <br />"; 
$result = null;  
if( !$id )  
  die("Fehler: Keine ID angegeben");  
else  
  $result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id);  
echo "RESULT: ".var_export($result,true)." <br />"; 
echo "NUMROWS: ".var_export(mysql_num_rows($result),true)."<br />"; 
if( mysql_num_rows($result) == 1 ){  
  echo "Datensatz mit ID {$id} gefunden:<br />";  
  $row = mysql_fetch_array($result);  
}  
else  
  echo "Kein Datensatz mit ID {$id} gefunden.";
```


Line 24:


```
echo "ID: ".var_export($id,true):" <br />";
```


----------



## timestamp (14. Mai 2010)

Hi

vielleicht kommst du ja selber auf die Lösung. Die Fehlermeldung übersetzt lautet:
Nichterwarteter ":". Erwarte "." oder "," oder ";". Der Fehler steckt tatsächlich in Zeile 24


----------



## Daniel0108 (14. Mai 2010)

Hier ist der Fehler:

```
echo "ID: ".var_export($id,true):" <br />";
```
da gehört ein . anstatt dem : ...
Also etwa so:

```
echo "ID: ".var_export($id,true)." <br />";
```
lg Daniel
EDIT: Da war wohl jemand schneller  trotzdem.. nochmal genau den fehler herausgepickt


----------



## timestamp (14. Mai 2010)

timestamp hat gesagt.:


> Hi
> 
> vielleicht kommst du ja selber auf die Lösung. Die Fehlermeldung übersetzt lautet:
> Nichterwarteter ":". Erwarte "." oder "," oder ";". Der Fehler steckt tatsächlich in Zeile 24



Soviel zum Thema


----------



## moritz115 (14. Mai 2010)

Danke. Habe alles ausprobiert, nur das nicht  Sry
Danke!!

Also,



> ID: '268'
> RESULT: NULL
> NUMROWS: 1
> Datensatz mit ID 268 gefunden:




Wenn die ID nicht vorhanden ist, bleibt immer noch der Bildschirm weiß  Jetzt muss noch mehr Hardcore kommen


----------



## Daniel0108 (14. Mai 2010)

timestamp hat gesagt.:


> Soviel zum Thema


Ja, wie gesagt.. Hat sich überschnitten 
Schau auf die Zeit meines posts und auf die Zeit deines....
xD
BTT: 
Dein Problem kannst du lösen mit:

```
if($id == false) die("Error! Id nicht vorhanden!");
```
$id enthält in diesem falle das mysql_fetch_row....
lg
Daniel


----------



## Maik (14. Mai 2010)

moritz115 hat gesagt.:


> Jetzt muss noch mehr Hardcore kommen


Jo, und zwar in deinem Gehirnmuskel 

mfg Maik


----------



## moritz115 (14. Mai 2010)

-.-

Warum? Erkennst du den Fehler warum der Bildschirm ewiß bleibt? 

Mal wieder back to topic^^


----------



## timestamp (14. Mai 2010)

```
error_reporting(E_ALL);
ini_set("display_errors",1);
$id = (isset($_GET["id"]))?$_GET["id"]:false; 
echo "ID: ".var_export($id,true):" <br />";
exit;
$result = null; 
if( !$id ) 
  die("Fehler: Keine ID angegeben"); 
else 
  $result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id); 
echo "RESULT: ".var_export($result,true)." <br />";
exit;
echo "NUMROWS: ".var_export(mysql_num_rows($result),true)."<br />";
exit;
if( mysql_num_rows($result) == 1 ){ 
  echo "Datensatz mit ID {$id} gefunden:<br />"; 
  $row = mysql_fetch_array($result); 
} 
else 
  echo "Kein Datensatz mit ID {$id} gefunden.";
```

Versuche jetzt mal eine ID, die sicher NICHT in der Tabelle ist. Und teste das Script mehrere Male mit der selben ID. Dabei entferne nacheinander die exit;s im Code. Mal sehen ob sich da was ergibt.

@Daniel: Ist ja kein Problem, nur _alles_ vorkauen wollte ich dann doch nicht


----------



## Maik (14. Mai 2010)

moritz115 hat gesagt.:


> Mal wieder back to topic^^


Ich bin On-Topic, und hab das ernst gemeint  

Wenn du die mehrmals empfohlenen Ratschläge bzgl. des Debugging nicht allmählich auf die Kette bekommst, datteln wir hier noch zu Weihnachten mit deinem weißen Bildschirm rum.

mfg Maik


----------



## moritz115 (14. Mai 2010)

Hallo,

habe ich gemacht.
Mein gesammter code jetzt:



```
<?php
error_reporting(E_ALL); 
ini_set("display_errors",1); 
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns mit den Infos, wo auf welcher Seite der Fehler aufgetaucht ist. z.B. den Link schicken. An: info@ein-mal-page.de Vielen Dank!");

$id = "'".$_GET['id']."'";

$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

$geprueft_holen = "SELECT `geprueft` FROM `wwp_page` WHERE `ID` = $id";
$geprueft_hab = mysql_query($geprueft_holen) or die (mysql_error());
$geprueft_ausg = mysql_fetch_row($geprueft_hab) or die(mysql_error());
$geprueft_ausgeben = $geprueft_ausg[0];




$id = (isset($_GET["id"]))?$_GET["id"]:false;  
echo "ID: ".var_export($id,true)." <br />";  
$result = null;  
if( !$id )  
  die("Fehler: Keine ID angegeben");  
else  
  $result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id);  
echo "RESULT: ".var_export($result,true)." <br />"; 
echo "NUMROWS: ".var_export(mysql_num_rows($result),true)."<br />"; 
if( mysql_num_rows($result) == 1 ){  
  echo "Datensatz mit ID {$id} gefunden:<br />";  
  $row = mysql_fetch_array($result);  
}  
else  
  echo "Kein Datensatz mit ID {$id} gefunden.";
```



Quellcode, wenn ID nicht vorhanden ist (bildschirm weiß):



> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <HTML><HEAD>
> <META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
> <BODY></BODY></HTML>




Ich verzweifel... 
Aber immer danke für eure Hilfe...

Maik, was war nochmal mit dem debuggen?^^
Kannst du nochmal grad schreiben?

Danke^^


----------



## Maik (14. Mai 2010)

moritz115 hat gesagt.:


> Maik, was war nochmal mit dem debuggen?^^
> Kannst du nochmal grad schreiben?


Warum sollte ich? Lies dir einfach die eingegangenen Beiträge in diesem Thema nochmal durch.

mfg Maik


----------



## timestamp (14. Mai 2010)

Hi

ich glaube es wäre besser, wenn du einem von uns mal einen FTP-Account einrichtest. Ich glaube, so wie Maik schon sagte, können wir hier noch 10 Seiten schreiben ohne Ergebnisse zu erzielen.
Was ist Debugging?


----------



## moritz115 (14. Mai 2010)

Timestamp, das kann ich leide rnicht machen. Wegen passwörtern und so von der Config. Und mal eben, ne, dann geht der rest nicht mehr... Und die Homepage ist passwortgeschützt etc.

Wir bekommen das bestimmt hier hin! Denn ich poste ja den Code der in der Datei steht

Und Maik, deinen Debuggingpost in diesem Tread finde ich nicht. Nur einen, der beide Threads zusammentackert...

Bitte hier im FOrum weiter probieren mit meinem COde...
Danke!


----------



## timestamp (14. Mai 2010)

Hi

was mir grad noch auffällt:

Schreibe das mal so:

```
<?php
error_reporting(E_ALL); 
ini_set("display_errors",1); 
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns mit den Infos, wo auf welcher Seite der Fehler aufgetaucht ist. z.B. den Link schicken. An: info@ein-mal-page.de Vielen Dank!");

$id = (isset($_GET["id"]))?$_GET["id"]:false;  
echo "ID: ".var_export($id,true)." <br />";  
$result = null;  
if( !$id )  
  die("Fehler: Keine ID angegeben");  

$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

$geprueft_holen = "SELECT `geprueft` FROM `wwp_page` WHERE `ID` = $id";
$geprueft_hab = mysql_query($geprueft_holen) or die (mysql_error());
$geprueft_ausg = mysql_fetch_row($geprueft_hab) or die(mysql_error());
$geprueft_ausgeben = $geprueft_ausg[0];


$result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id);  
echo "RESULT: ".var_export($result,true)." <br />"; 
echo "NUMROWS: ".var_export(mysql_num_rows($result),true)."<br />"; 
if( mysql_num_rows($result) == 1 ){  
  echo "Datensatz mit ID {$id} gefunden:<br />";  
  $row = mysql_fetch_array($result);  
}  
else  
  echo "Kein Datensatz mit ID {$id} gefunden.";
```

Anbei: Das macht jetzt schonmal 50€ Bearbeitungsgebühr.


----------



## Maik (14. Mai 2010)

moritz115 hat gesagt.:


> Und Maik, deinen Debuggingpost in diesem Tread finde ich nicht.



Noch nicht mal lesen kann der Mensch, denn von mir gibt's hier überhaupt keinen "Debuggingpost" :suspekt:

Deshalb: "Augen auf im Straßenverkehr"!

Debugging #1
Debugging #2
Debugging #3
Debugging #4

mfg Maik


----------



## moritz115 (14. Mai 2010)

DAAAANKE Timestamp...

Jetzt kommt als ausgabe wenn ID nicht vorhanden das:




> ID: '2680'



Wenn keine ID angegeben wird:



> ID: ''
> Fehler: Keine ID angegeben


Auch gut 


Wenn ID angegeben:



> ID: '268'
> RESULT: NULL
> NUMROWS: 1
> Datensatz mit ID 268 gefunden






Aber das ist doch auch nicht ganz richtig. Eigentlich müsste docha uch noch text kommen, oder!? Aber es gibt bei deinem COde ja 2 "Fehlermeldungen"... Dann bringt doch das else garnichts, wenn nur die erste genommen wird, oder!? Oder besser gesagt, der code hier bringt dann doch nichts!?:


EDIT:
Ich habe gerade gemerkt, das ich nicht mehr durch den COde durchsteige von timestamp. Kannst du mir den nochmal erklären? Also an die richtigen stellen einfach // beschreibung machen? Und dann dort beschreiben, was hier ist. ALso, ID nicht vorhanden in Datenbank, ID nicht angegeben etc.
DANKE!



```
if( mysql_num_rows($result) == 1 ){   
  echo "Datensatz mit ID {$id} gefunden:<br />";   
  $row = mysql_fetch_array($result);   
}   
else   
  echo "Kein Datensatz mit ID {$id} gefunden."; 
  }
```

PS: Maik, dachte, die Posts mit Debugging sollen von dir sein^^


----------



## timestamp (14. Mai 2010)

Du hast Glück dass ich gerade nichts zu tun habe. Wenn du schon meinst, mich per PN anschreiben zu müssen, dann erwarte ich zumindest dort einen Hauch von Höflichkeit.



			
				moritz115 hat gesagt.:
			
		

> http://www.tutorials.de/forum/php/3...r-im-code-bildschirm-weiss-5.html#post1865755
> 
> 
> Wäre super!





```
<?php
error_reporting(E_ALL); //alle Fehler ausgeben
ini_set("display_errors",1); //Fehler auf der Seite anzeigen
include("config.php");
mysql_connect($host, $user, $passwd) or die ("Keine Verbindung hergestellt!");
mysql_select_db ($db1) or die ("Datenbank nicht geöffnet! Bitte schreibe eine Mail an uns mit den Infos, wo auf welcher Seite der Fehler aufgetaucht ist. z.B. den Link schicken. An: info@ein-mal-page.de Vielen Dank!");

$id = (isset($_GET["id"]))?$_GET["id"]:false;  //Wenn $_GET["id"] ist, wird es $id zugewiesen, sonst erhält $id den Wert false.
echo "ID: ".var_export($id,true)." <br />";  
if( !$id )  
  die("Fehler: Keine ID angegeben");  

$name_holen = "SELECT `name` FROM `wwp_page` WHERE `ID` = $id";
$name_hab = mysql_query($name_holen) or die (mysql_error());
$name_ausg = mysql_fetch_row($name_hab) or die(mysql_error());
$name_ausgeben = $name_ausg[0];

$geprueft_holen = "SELECT `geprueft` FROM `wwp_page` WHERE `ID` = $id";
$geprueft_hab = mysql_query($geprueft_holen) or die (mysql_error());
$geprueft_ausg = mysql_fetch_row($geprueft_hab) or die(mysql_error());
$geprueft_ausgeben = $geprueft_ausg[0];


$result = mysql_query("SELECT * FROM wwp_page WHERE ID = ".$id);  
echo "RESULT: ".var_export($result,true)." <br />"; 
echo "NUMROWS: ".var_export(mysql_num_rows($result),true)."<br />"; 
if( mysql_num_rows($result) == 1 ){  //Wenn genau 1 Datensatz mit der ID gefunden wurde
  echo "Datensatz mit ID {$id} gefunden:<br />";  
  $row = mysql_fetch_array($result);  
}  
else  
  echo "Kein Datensatz mit ID {$id} gefunden.";
```

Der Rest stammt von dir bzw sollte selbsterklärend sein.


----------



## moritz115 (14. Mai 2010)

Danke und sry, das ich so unfreundlich "geschrieben" habe, aber wenn die ID nicht vorhanden ist, wird dies nicht angezeigt:



> Kein Datensatz mit ID {$id} gefunden.



Sondern das:

ID: '2680' 


Was jetzt?
Danke und mfg


----------



## timestamp (14. Mai 2010)

Ich glaub wenn ich hiermit durch bin, muss ich mal 'nen Termin bei einem Therapeuten machen :suspekt:
Woher weißt du denn dass die ID nicht vorhanden ist?


----------



## moritz115 (14. Mai 2010)

Weil ich das über phpmyadmin nachgeguckt habe...


----------



## timestamp (14. Mai 2010)

Lass dir dochmal die SQL querys ausgeben und führe diese im phpMyAdmin aus. Klick hier wenn du nicht weißt wie


----------



## Maik (14. Mai 2010)

Es kann nicht angehen, dass du nun auch noch die Mitglieder per PN zur Hilfe nötigst, und nicht einen einzigen der Folgefehler mal selbst aus der Welt räumst.

Daher ist hier nun erstmal Schluß mit lustig, denn allmählich überspannst du wirklich den Bogen der Gutmütigkeit und Hilfsbereitschaft, und wirst nun für die kommenden zwei Wochen vom Sportunterricht befreit.



> Sportunterricht-Befreiung, was heißt das?


Im Klartext, dir werden die Rechte entzogen, am Forengeschehen aktiv teilzunehmen.

mfg Maik


----------



## Flex (14. Mai 2010)

Ich schließe dieses Thema jetzt hier, weil hier 0 Eigeninitiative kommt und der Threadersteller sich alles schön vorprogrammieren lässt und das ist nicht SInn und Zweck dieses Forums.


----------

