berdn: mysql_query, Anfängerfrage

Liebes Forum,

ich habe eine mySQL Datenbank die ich mit PHP abfrage.
1. Frage:

Wenn alle Bedingungen erfüllt sind soll eine Tabelle mit den Daten geschrieben werden, nur wie schreibe ich den Tabellenanfang und das Ende nur einmal bzw. nur wenn die Bedingungen erfüllt sind?

Erste Möglichkeit: (Macht mich nicht glücklich)
<table>
<?PHP
$result = mysql_query ("SELECT * FROM Table WHERE value1='true' AND value1='true');
 while ( $row = mysql_fetch_array($result) ) {
 $num = $row["num"];
 echo($num);
}
?>
</table>
Zweite Möglichkeit: (Ziel erreicht, aber nicht wirklich glücklich)
<?PHP
$tmp = 1;
$result = mysql_query ("SELECT * FROM Table WHERE value1='true' AND value1='true');
 while ( $row = mysql_fetch_array($result) ) {
 $num = $row["num"];
 if($tmp == 1){
  echo("<table>");
 }
 echo($num);
 if($tmp == 1){
  echo("</table>");
  $tmp=2;
 }
}
?>

Hat hierzu jemand eine inspiration für mich ?

2. Frage
Ich brauche meine mysql_query noch ein zweitesmal mal auf der Seite,
wenn ich "while ( $row = mysql_fetch_array($result) )" einmal abgearbeitet habe, geht es nicht ein zweites mal. (Hab ich noch nicht hingekriegt ;-()
a.) Nochmal die Query wiederholen ? oder
b.) kann ich $result irgendwie zwischenspeichern, duplizieren ?

Einfach schonmal Danke,

Bernd

  1. Wenn alle Bedingungen erfüllt sind soll eine Tabelle mit den Daten geschrieben werden, nur wie schreibe ich den Tabellenanfang und das Ende nur einmal bzw. nur wenn die Bedingungen erfüllt sind?

    Frage ab, wieviele Datensätze Dein select geliefert hat, falls mehr als Null, schreibe Tabellenanfang und Tabellendaten. Wirf einen Blick in die PHP-Anleitung (http://de.php.net/manual/de/ref.mysql.php), Du wirst sicher eine passende Funktion finden.

    Ich brauche meine mysql_query noch ein zweitesmal mal auf der Seite,
    wenn ich "while ( $row = mysql_fetch_array($result) )" einmal abgearbeitet habe, geht es nicht ein zweites mal. (Hab ich noch nicht hingekriegt ;-()

    Auch hierfür wirst Du in der Anleitung eine Funktion finden, mit der sich der Zeiger in der Ergebnisliste an den Anfang bewegen lässt.

    1. Danke "Geistiger Hohlraum",

      das war das was ich suchte :-)

      Ertes Problem gelöst, beim zweiten schaue ich mir mal
      mysql_field_seek
      mysql_data_seek

      an.

      Euch allen einen schönen Abend,

      Bernd

  2. yo,

    SELECT * FROM Table WHERE value1='true' AND value1='true'

    diese abfrage ist zwar nicht falsch, aber dennoch läst sie sich ein wenig verbessern. zweimal die spalte value1 nach dem wert 'true' abzufragen macht nicht wirklich einen sinn, bzw. ist unnötig. folgende abfrage wird genau das gleiche erreichen und sieht doch viel schöner aus.

    SELECT * FROM Table WHERE value1='true'

    Ilja