Verkürzen einer MySQL Abfrage

Hallo zusammen,

habe folgenden Code:

...

PHP:
<?php

$DB_name="XXX"; 
$DB_User="XXX";
$DB_Pass="XXX"; 
$DB_Server="XXX";
$orderby = $_GET[orderby];
$sort = $_GET[sort];

$link = mysql_connect($DB_Server, $DB_User, $DB_Pass)
        or die ("Could not connect");
          mysql_select_db ($DB_name)
        or die ("Could not select database");

         $query="SELECT id, kundennummer, nachname, vorname, email FROM immo_kundendaten ORDER BY $orderby $sort";
         $result = mysql_query ($query)
             or die ("Query failed");
$check = true;
$lv=1;
while($line = mysql_fetch_array($result))
{
 if($check)
 {
  print "<tr>
  <td bgcolor='#FDDDBD'><font size='2'>$line[kundennummer]</td>
  <td bgcolor='#FDDDBD'><font size='2'>$line[nachname]</td>
  <td bgcolor='#FDDDBD'><font size='2'>$line[vorname]</td>
  <td bgcolor='#FDDDBD'><font size='2'>$line[email]</td>
  <td bgcolor='#FDDDBD'><img src='img/info.gif' border='0' alt='$line[notizen]'></a>
  			<a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif' border='0' alt='Ändern'></a> 
  			<a href='mysql_delete_frage.php?id=$line[id]'><img src='img/delete.gif' border='0' alt='löschen'></a></td>
  </tr>";
 }
 else
 {
  print "<tr>
  <td bgcolor='#FDDDBD'><font size='2'>$line[kundennummer]</td>
  <td bgcolor='#FDDDBD'><font size='2'>$line[nachname]</td>
  <td bgcolor='#FDDDBD'><font size='2'>$line[vorname]</td>
  <td bgcolor='#FDDDBD'><font size='2'>$line[email]</td>
  <td bgcolor='#FDDDBD'><img src='img/info.gif' border='0' alt='$line[notizen]'></a>
  			<a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif' border='0' alt='Ändern'></a> 
  			<a href='mysql_delete_frage.php?id=$line[id]'><img src='img/delete.gif' border='0' alt='löschen'></a></td>
  </tr>";
 }
 $check = !$check;
 $lv++;
}
 mysql_close($link);
?>
</table>
<?php include "footer.php"; ?>

- es ist schon sehr nervig, jedes mal zwei mal das ganze einzugeben - geht es denn nicht auch kürzer?

danke im vorraus

ciao fritz
 
Hallo!

Also, ich denke, du meinst die zeilenweise Ausgabe in der Tabelle in der IF-Abfrage?!
So, wie ich das sehe, willst du damit erreichen, dass der obere Teil nur einmal und danach nur der untere (else-) Teil ausgeführt wird.
Bloß es lässt sich für mich kein Unterschied zwischen den beiden Teilen ermitteln!
Wenn ich richtig gucken kann, ist das beides genau der selbe Code!
Genau! Das ist auch gleichzeitig ein Vorwurf an dich! :rolleyes: :mad:
Du könntest doch mal dein Problem etwas genauer schildern.
Warum willst du, dass der obere Teil nur einmal und danach der else-Teil ausgeführt wird?

Übrigens:
Das gehört doch ins PHP-Forum!
 
wirklich?

servus,

wegen falschen thread, es hat ja eigentlich etwas mit mysql und php zu tun, deswegen dachte ich wäre dies das passende forum.

du hast recht beide teile sind gleich. die else kann ich nicht rausnehmen, da er mir sonst nur den ersten datensatz anzeigt und mehr nicht - was fehlt an dem script? ich habe es von einem kumpel erhalten, deswegen frage ich.

ciao fritz
 
Nein, um MySQL geht es hier doch überhaupt nicht!
MySQL kommt in deinem Script nur vor, tut aber überhaupt nichts zur Sache.
In diesem Forum geht es um DIREKTE Probleme mit Datenbanken.

Das er dir nur den ersten Datensatz anzeigt, liegt wohl daran, dass du die IF-Bedingung nicht heraus genommen hast - ?!

Hier mal das Ganze ohne die If:

PHP:
<?php 

$DB_name="XXX"; 
$DB_User="XXX"; 
$DB_Pass="XXX"; 
$DB_Server="XXX"; 
$orderby = $_GET[orderby]; 
$sort = $_GET[sort]; 

$link = mysql_connect($DB_Server, $DB_User, $DB_Pass) 
        or die ("Could not connect"); 
          mysql_select_db ($DB_name) 
        or die ("Could not select database"); 

         $query="SELECT id, kundennummer, nachname, vorname, email FROM immo_kundendaten ORDER BY $orderby $sort"; 
         $result = mysql_query ($query) 
             or die ("Query failed"); 

while($line = mysql_fetch_array($result)) 
{ 
print "<tr> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[kundennummer]</td> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[nachname]</td> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[vorname]</td> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[email]</td> 
  <td bgcolor='#FDDDBD'><img src='img/info.gif' border='0' alt='$line[notizen]'></a> 
              <a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif' border='0' alt='Ändern'></a> 
              <a href='mysql_delete_frage.php?id=$line[id]'><img src='img/delete.gif' border='0' alt='löschen'></a></td> 
  </tr>"; 
} 
mysql_close($link); 
?> 
</table> 
<?php include "footer.php"; ?>
 
Zuletzt bearbeitet:
Sicher kannst du:

PHP:
<?php 

$DB_name="XXX"; 
$DB_User="XXX"; 
$DB_Pass="XXX"; 
$DB_Server="XXX"; 
$orderby = $_GET[orderby]; 
$sort = $_GET[sort]; 

$link = mysql_connect($DB_Server, $DB_User, $DB_Pass) 
        or die ("Could not connect"); 
          mysql_select_db ($DB_name) 
        or die ("Could not select database"); 

         $query="SELECT id, kundennummer, nachname, vorname, email FROM immo_kundendaten ORDER BY $orderby $sort"; 
         $result = mysql_query ($query) 
             or die ("Query failed"); 
$check = true; 
$lv=1; 
while($line = mysql_fetch_array($result)) 
{ 
  print "<tr> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[kundennummer]</td> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[nachname]</td> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[vorname]</td> 
  <td bgcolor='#FDDDBD'><font size='2'>$line[email]</td> 
  <td bgcolor='#FDDDBD'><img src='img/info.gif' border='0' alt='$line[notizen]'></a> 
  <a href='mysql_aendern.php?id=$line[id]'><img src='img/edit.gif' border='0' alt='Ändern'></a> 
  <a href='mysql_delete_frage.php?id=$line[id]'><img src='img/delete.gif' border='0' alt='löschen'></a></td> 
  </tr>"; 
$lv++; 
} 
mysql_close($link); 
?> 
</table> 
<?php include "footer.php"; ?>
 
@aquasonic:
Postest du immer die Posts anderer doppelt?
Du hast sogar noch ein bisschen zuviel dran gelassen ($check und $lv können weg)!


:) :rolleyes:
 
hallo aquasonic,

dank dir ebenfalls!

nächstes mal schreibe ich ins php thread, sorry. bin erst seit heute hier bei tutorials.de

machts gut!

ciao fritz
 
$check ja...$lv war ja schon vorher überflüssig, drum dachte ich lasse ich das drin, vielleicht braucht er es ja noch...Und das wegen dem doppelt posten, ist ja nur ein bisschen besser verständlich wenn ich nochmal den Code poste als wenn ich ihm erkläre was er machen muss... Oder bist du da nicht meiner Meinung?;)

EDIT: Ah du hast da auch schon gepostet...Warst du wohl schneller als ich, als ich auf antworten geklickt habe war dein Post noch nicht da :)
 
Zurück