MySQL - Abfrage nach Datum

Ab zeile 28 weg:


$result = mysql_query("SELECT * FROM news WHERE datum >= '".$datum_anfang."' AND datum <= '".$datum_ende."'");
while($irgendwas = mysql_fetch_array($result))

echo "<table width=\"$breitenews\">";

$result = mysql_query($abfrage,$conn);
while ($row = mysql_fetch_array ($result))


Übrigens die datenbank.inc.php sieht so aus

<?
mysql_connect($server, $user, $pass);
?>

und am anfang hat sie so ausgesehen:

<?
$conn = @mysql_connect($server, $user, $pass);
if (!$conn)
{echo "$fehlerdatenbank";}
$verbindung = @mysql_select_db($db);
if (!$verbindung)
{echo "$datenbanknichtda";}
?>
 
Gut, wollen wir dem mal auf den Grund gehen! Die datebank.inc.php sollte natürlich auch weiterhin noch mysql_select_db behinhalten! Folglich sollten dann zwei Funktionen drin sein! Das reicht aber auch!!!


Bei der zweiten Abfrage muss natürlic hjetzt auch kein $conn mehr stehen, denn das gibt es ja nicht mehr! Die Verbindung ist schon da! Da gibt es eigentlich, wenn es einmal läuft, keine Fehler mehr!


Bei den while-Schleifen nach der Abfrage vermisse ich die {}, also darin dann das, was mit den Daten aus der Abfrage geschehen soll. In der Regel die Ausgabe!


Du kannst zwar eine Abfrage mit einer while-Schleife in einer anderen while-Schleife machen, nur darf dann die Variable, der die Werte auf der Abfrage zugewiesen werden, nciht den gleichen Namen haben. Damit ist $result gemeint. Da ja sonst bei dem ersten Durchlauf der Schleife der Wert von der ersten Abfrage von $ result durch den neuen überschrieben wird und somit nicht mehr vorhanden ist!


Hoffe das hilft schonmal wieder weiter!!!
 
Also nochmals vielen dank dass du die ganze zeit hier für mich opferst!

Also hab den quelltext ausgebessert, jetzt siehts so aus:

<?
include("config.inc.php");
include("datenbank.inc.php");

$datum_anfang = mktime(0,0,0,4,9,2003);
$datum_ende = mktime(23,59,59,4,15,2003);

$result = mysql_query("SELECT * FROM news WHERE datum >= '".$datum_anfang."' AND datum <= '".$datum_ende."'");
while($irgendwas = mysql_fetch_array($result))

echo "<table width=\"$breitenews\">";

$result = mysql_query($abfrage);
while ($row = mysql_fetch_array ($result))
{
$datum = $row["datum"];
$beitrag = $row["beitrag"];
$beitrag = nl2br($beitrag);
$autor = $row["autor"];
$betreff = $row["betreff"];
$kurztext = $row["kurzform"];
$kurztext1 = nl2br($kurztext);

$datum1 = date("d.m.Y",$datum);

if ($artuebersicht == "1")
{
echo <<<ABC
<tr>
<td><center><p class="betreff"><b>$betreff</b><br><small>(Datum: $datum1)</small></center></td>
</tr>
<tr>
<td><p class="beitrag"><center><small>$kurztext1 ... </small></center><a href="details.php?datum=$datum"><center><small>mehr</small></center><br><br></a>
</td>

</tr>
ABC;
}
if ($artuebersicht == "2")
{
echo <<<ABC
<tr>
<td><p class="betreff">$betreff<small>(am $datum1 geschrieben von $autor)</small></td>
</tr>
<tr>
<td><p class="beitrag">$beitrag<br><br></td>
</tr>
ABC;
}
}
echo "</table>";

?>


Aber was meinst du mit while?

Die datenbank.inc.php sieht so aus:

<?
mysql_connect($server, $user, $pass);
mysql_select_db($db);
?>
 
Den fehler hab ich vergessen zu schreiben:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/arionfin/www/www/news/test.php on line 33
 
Das ist dein Code:

PHP:
$result = mysql_query("SELECT * FROM news WHERE datum >= '".$datum_anfang."' AND datum <= '".$datum_ende."'");
while($irgendwas = mysql_fetch_array($result))

echo "<table width=\"$breitenews\">";

$result = mysql_query($abfrage);
while ($row = mysql_fetch_array ($result)) 
{
$datum = $row["datum"];
$beitrag = $row["beitrag"];

Gehen wir da mal eben durch!

Bei dem ersten while fehlen definitiv die {}-Klammern, die du ja bei zweitem while hast. Die müssen da auf jeden Fall hin!

Wenn du jetzt sagen wir mal 5 Datensätze aus der oberen Abfrage hast, muss die Schleife ja 5 mal durchlaufen werden. klar! Die Datensätze werden der Variablen $result zugewiesen. So, bei ersten durchlauf wird jetzt aber bei der nächsten Abfrage das Ergebnis der ersten Abfrage, welches sich ja in $result befindet, überschrieben, da ja wieder die gleich Variable benutzt wird.

Daher sollte der Code auszugsweise so aussehen:

PHP:
$result = mysql_query("SELECT * FROM news WHERE datum >= '".$datum_anfang."' AND datum <= '".$datum_ende."'");
while($irgendwas = mysql_fetch_array($result))

echo "<table width=\"$breitenews\">";

$result_2 = mysql_query($abfrage);
while ($row = mysql_fetch_array ($result)) 
{
$datum = $row["datum"];
$beitrag = $row["beitrag"];

Ist nur ne kleine Änderung drin, beim zweiten $result!!!
So, dann mal her mit der nächsten Frage ;)
 
Durch diese sagen wir mal doppelte Variable ann es dann natürlich dazu führen, dass Werte, die bei der ersten Abfrage noch vorhanden waren durch die zweite Abfrage ersetzt werden und somit beim nächsten durchlauf der Schliefe nicht mehr zur Verfügung stehen!
 
Also nach dieser änderung zeigt er jetzt nur die leere seite an, keine fehlermeldung mehr, allerdings auch kein ergebnis.
 
Das ist ja schonmal ganz praktisch ;) Gäbe es überhaupt einträge, die in deinem Zeitraum liegen??? Oder nochmal her mit dem ganzen Code!!! Wenn ich nicht schnell antworte, bin ich auf dem Heimweg, dann kann es dauern ;)
 
Das ist der komplette code:

Kannst mir ja morgen antworten, bin mämlich jetzt ab 16.30 uhr auch nicht mehr am pc. Also danke derweilen nochmals für die hilfe!!!

<html>
<head>
<link rel=stylesheet type="text/css" href="news.css">
<body background="newsbg.jpg"</body>
<style>
body
, textarea {
scrollbar-base-color:#FFFFFF;
scrollbar-3dlight-color:#FFFFFF;
scrollbar-arrow-color:#6493DB;
scrollbar-darkshadow-color:#FFFFFF;
scrollbar-face-color:#EEF2FB;
scrollbar-highlight-color:#FFFFFF;
scrollbar-shadow-color:#FFFFFF;
scrollbar-track-color:#FFFFFF;
}
</style>
</head>

<?
include("config.inc.php");
include("datenbank.inc.php");

$datum_anfang = mktime(0,0,0,4,9,2003);
$datum_ende = mktime(23,59,59,4,15,2003);

$result = mysql_query("SELECT * FROM news WHERE datum >= '".$datum_anfang."' AND datum <= '".$datum_ende."'");
while($irgendwas = mysql_fetch_array($result))

echo "<table width=\"$breitenews\">";

$result_2 = mysql_query($abfrage);
while ($row = mysql_fetch_array ($result))
{
$datum = $row["datum"];
$beitrag = $row["beitrag"];
$beitrag = nl2br($beitrag);
$autor = $row["autor"];
$betreff = $row["betreff"];
$kurztext = $row["kurzform"];
$kurztext1 = nl2br($kurztext);

$datum1 = date("d.m.Y",$datum);

if ($artuebersicht == "1")
{
echo <<<ABC
<tr>
<td><center><p class="betreff"><b>$betreff</b><br><small>(Datum: $datum1)</small></center></td>
</tr>
<tr>
<td><p class="beitrag"><center><small>$kurztext1 ... </small></center><a href="details.php?datum=$datum"><center><small>mehr</small></center><br><br></a>
</td>

</tr>
ABC;
}
if ($artuebersicht == "2")
{
echo <<<ABC
<tr>
<td><p class="betreff">$betreff<small>(am $datum1 geschrieben von $autor)</small></td>
</tr>
<tr>
<td><p class="beitrag">$beitrag<br><br></td>
</tr>
ABC;
}
}
echo "</table>";

?>
</body>
</html>
 
Deine Zeile:

PHP:
$result_2 = mysql_query($abfrage);
while ($row = mysql_fetch_array ($result))


Meine Zeile:
PHP:
$result_2 = mysql_query($abfrage);
while($row = mysql_fetch_array($result_2))


Achja, wo kommt $abfrage her????
 
Zurück