Daten aus der Datenbank sind falsch

Tobi91

Grünschnabel
Hallo,

ich will aus der Datenbank Werte auslesen will und dannach ausgeben will wird nacher im browser nur ein "&" angezeigt.

Hier der entsprechende Code.

PHP:
<?php
$sql = mysql_query("SELECT * FROM gooba_bash WHERE status = '1' ORDER BY date DESC LIMIT $start, $eintraege_pro_seite") or die(mysql_error());

while($quote = mysql_fetch_array($sql)) {
	$good	  = $quote["rate_good"];
	$bad	  = $quote["rate_bad"];
            }
....

echo $good;
echo $bad;

?>

Kann mir jemand sagen, wieso und warum da nur ein "&" angezeigt wird und nicht (wie es in der Db steht) eine "0" ?

Danke.

Gruß,
Tobias
 
Zuletzt bearbeitet:
Kommt in deinem Query wirklich nur ein Ergebnis raus?
Denn so wie es jetzt ist, überschreibt deine Schleife jedes mal den Inhalt von $good und $bad, bis nur noch der letzte Eintrag drin ist.

PHP:
<?php
$sql = mysql_query("SELECT * FROM gooba_bash WHERE status = '1' ORDER BY date DESC LIMIT $start, $eintraege_pro_seite") or die(mysql_error());

while($quote = mysql_fetch_array($result)) 
{
    $good[]  = $quote["rate_good"];
    $bad[]    = $quote["rate_bad"];
}
#....

echo '<pre>';
print_r($good);
print_r($bad);
echo '</pre>';
?>

So würden alle Daten in einem Array gespeichert werden.
 
Zur bessern verständniss hier der komplette Code (soweit nötig):

Was das Skript macht: Es werden Zitate aus der Datenbank ausgegeben, jedoch wird bei $bad und $good nur ein "&" angezeigt :/
Doch sind in der Datenbank defintiv als Werte "0" angegeben.

PHP:
<?php
$result = mysql_query("SELECT * FROM gooba_bash WHERE status = '1' ORDER BY date DESC LIMIT $start, $eintraege_pro_seite") or die(mysql_error());
echo "<b>Derzeit haben wir $menge Zitate in unserer Datenbank!</b><br /><br />";

while($quote = mysql_fetch_array($result)) {

	$username = $quote["username"];
	$id 	  = $quote["id"];
	$date 	  = $quote["date"];
	$quote 	  = nl2br("$quote[quote]");
	$quote_l  = strlen($quote);
	$good	  = $quote["rate_good"];
	$bad	  = $quote["rate_bad"];

	$quote_array = explode("<br />", $quote);

	if($quote_array[4] != "") {
	$quote_k = $quote_array[0]."<br />";
	$quote_k .= $quote_array[1]."<br />";
	$quote_k .= $quote_array[2]."<br />";
	$quote_k .= $quote_array[3]."<br />";
	$quote_k .= "<a href='bash/$id' target='_self'>[Ganzes Zitat lesen...]</a>";
	}
	else { 
	$quote_k = $quote;
	}

	$datum 	 = date("d.m.Y",$date);
	$uhrzeit = date("H:i",$date);

?>
<div class="post">
<h3><a href="http://gooba.pytalhost.de/bash/<?php echo $id; ?>">#<?php echo $id; ?></a></h3>

<ul class="post_info">
	<li class="date">eingesandt von <?php echo $username; ?> am <?php echo $datum; ?> um <?php echo $uhrzeit; ?> Uhr.</li>
	<li class="vote">Bewertung: <a href="index.php?bash&rate=1&id=<?php echo $id; ?>" target="_self"><img src="images/rate/good.gif" alt="Gut Bewerten!"></a> (<?php echo "$good"; ?>) | <a href="index.php?bash&rate=0&id=<?php echo $id; ?>" target="_self"><img src="images/rate/bad.gif" alt="Schlecht Bewerten!"></a> (<?php echo "$bad"; ?>)</li>
</ul>

<p><?php echo $quote_k; ?></p>

<br /><br />
	<?php
	}
           ?>
 
PHP:
$quote       = nl2br("$quote[quote]");

..schau dir doch hier mal die "" an =) *g*

PHP:
$quote       = nl2br($quote["quote"]);

sooo wäre das meiner Meinung nach irgendwie logischer..


mfG

schnoops
 
Kann ja keine "0" ausgegeben werden da du ja nur Datensätze mit dem Wert "1" abfragen lässt ansonsten hier mal ne einfache lösung
<?php
$sql = mysql_query("SELECT * FROM gooba_bash WHERE status = '1' ORDER BY date DESC LIMIT $start, $eintraege_pro_seite") or die(mysql_error());
quote = mysql_fetch_assoc($result);

do {
echo $quote['rate_good']."<br />";
echo $quote['rate_bad]."<br />";
} while($quote = mysql_fetch_assoc($result));

}
?>
 
PHP:
while($quote = mysql_fetch_array($result)) { 

    $username = $quote["username"]; 
    $id       = $quote["id"]; 
    $date       = $quote["date"]; 
    $quote       = nl2br("$quote[quote]");  // <<< überschreibt $quote = mysql_fetch_array...
    $quote_l  = strlen($quote); 
    $good      = $quote["rate_good"]; 
    $bad      = $quote["rate_bad"]; 
// usw

Wenn ich mich jetzt nicht verlesen haben sollte, sollte dies der Fehler sein.
Im While weisst du jedes ergebnisarray aus der DB der Variable $quote zu.
Beim abarbeiten der einzelen Elemente des Arrays weisst du der Variable $quote einen String zu (markiert). Aus diesem nun (string) $quote möchtest du die Array Elemente 'rate_good' und 'rate_bad' den Variablen $good, $bad zuweisen.

Du überschreibst also deine Grundlage $quote mit einem String und möchtest dann aus diesen String noch array Elemente auslesen
 
Zurück