Hösten Wert der Spalte herrausfinden !!
Hi all,
wie finde ich den höchsten Wert einer Spalte in einer MySQL Spalte herraus ??
Also nehmen wir an !!
es gibt eine Spalte mit Int Einträgen !!
Also
1
2
3
4
5
6
So und das Script soll die 6 oda eben die höchste Zahl herrausfinden um diese dann also Abbruch bedingung einer While-Schleife zu nutzen !!
Mit welcher MySQL Funktion für PHP macht man das nochmal ??
wie finde ich den höchsten Wert einer Spalte in einer MySQL Spalte herraus ??
Also nehmen wir an !!
es gibt eine Spalte mit Int Einträgen !!
Also
1
2
3
4
5
6
So und das Script soll die 6 oda eben die höchste Zahl herrausfinden um diese dann also Abbruch bedingung einer While-Schleife zu nutzen !!
Mit welcher MySQL Funktion für PHP macht man das nochmal ??
Zitat von Albert Einstein:
"Geniale Menschen sind selten ordentlich, Ordentliche hingegen selten genial"
"Geniale Menschen sind selten ordentlich, Ordentliche hingegen selten genial"
$sql = "select spalte from tabelle order by spalte DESC LIMIT 1";
$run = mysql_query($sql);
while( $row = mysql_fetch_array($run)){$max = $row['spalte'];}
so nun hast du den max wert jetzt kannst du den rest auch selber machen ...
$run = mysql_query($sql);
while( $row = mysql_fetch_array($run)){$max = $row['spalte'];}
so nun hast du den max wert jetzt kannst du den rest auch selber machen ...
ihre DNS Analyse zeigt eine krankhafte Abneigung gegen jegliche Autorität und einen Charakter der zum Gewaltausbrechen neigt....
campool
unregistriert
Also den Tip von treo finde ich nicht besonders gut, weil der Webserver damit besonders beansprucht wird.
Wenn du wirklich nur den Max-Wert für eine Abbruchbedingung berauchst, dann benutze lieber den Tip von LYNX, da geht schneller, und die anderen User deines Webservers werden dir danken
.
Wenn du mit den Zeilen bis zur Abbruchbedingung etwas tun mußt dann nutze den Tip von TREO ohne 'Limit 1' im Select-Statment und fackel alles in der Schleife ab.
Wenn du wirklich nur den Max-Wert für eine Abbruchbedingung berauchst, dann benutze lieber den Tip von LYNX, da geht schneller, und die anderen User deines Webservers werden dir danken
. Wenn du mit den Zeilen bis zur Abbruchbedingung etwas tun mußt dann nutze den Tip von TREO ohne 'Limit 1' im Select-Statment und fackel alles in der Schleife ab.
Zitat
Original von treo
$sql = "select spalte from tabelle order by spalte DESC LIMIT 1";
$run = mysql_query($sql);
while( $row = mysql_fetch_array($run)){$max = $row['spalte'];}
so nun hast du den max wert jetzt kannst du den rest auch selber machen ...
da braucht man doch keine while schleife oder?
ist ja sowieso nur ein datensatz drin.
müsste doch auch ohne schleife gehen:
|
|
PHP-Quelltext |
1 2 |
$row = mysql_fetch_array($run);
$max = $row['spalte'];
|
jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »jperl« (18. Juni 2003, 11:39)
campool
unregistriert
RE: Doch, WHILE ist wichtig!!!
@bitkiller:
Was ist das für ein Verhalten einer Datenbank, die bei einer leeren Tabelle bei
eine -1 zurückliefert, max_id muß doch NULL sein. Denn wo nichts ist kann nicht -1 sein
.
Das kann ich dir einfach nicht glauben.
Was ist das für ein Verhalten einer Datenbank, die bei einer leeren Tabelle bei
|
|
Quellcode |
1 |
SELECT max(id) as max_id FROM table |
eine -1 zurückliefert, max_id muß doch NULL sein. Denn wo nichts ist kann nicht -1 sein
.Das kann ich dir einfach nicht glauben.
bitkiller
unregistriert
Initialisieren
Wenn eine Variable nicht benutzt ist (war) ist sie nicht initialisiert, also ist nicht eindeutig, welchen Inhalt sie hat.
Wenn man nun eine nicht initialisierten Variable mit einem NICHT zurückgegebenen Wert füllt, ist der Inhalt der Variablen der selbe wie davor und somit unbestimmt.
Eine richtige MySQL-Abfrage sieht IN ETWA wie folgt aus:
################################
include("connect.php");
mysql_select_db ("DATENBANK");
// Sende Anfrage
$query = "SELECT * FROM `TABELLE` where `FELD` = 'WERT'";
$result = mysql_query($query) or die("Fehler!");
$i = mysql_num_rows($result) - 1;
for ($y = 0; $y <= $i; $y++)
{
if (!mysql_data_seek($result, $y))
{
echo "Finde Zeile $i nicht\n";
continue;
}
if (!($row = mysql_fetch_object($result)))
continue;
// Hier kommt hin, was gemacht werden soll (Schleifen, Ausgaben und Wertezuweisungen)
}
// Mache am Ende
mysql_free_result($result);
###############################
Wenn man nun eine nicht initialisierten Variable mit einem NICHT zurückgegebenen Wert füllt, ist der Inhalt der Variablen der selbe wie davor und somit unbestimmt.
Eine richtige MySQL-Abfrage sieht IN ETWA wie folgt aus:
################################
include("connect.php");
mysql_select_db ("DATENBANK");
// Sende Anfrage
$query = "SELECT * FROM `TABELLE` where `FELD` = 'WERT'";
$result = mysql_query($query) or die("Fehler!");
$i = mysql_num_rows($result) - 1;
for ($y = 0; $y <= $i; $y++)
{
if (!mysql_data_seek($result, $y))
{
echo "Finde Zeile $i nicht\n";
continue;
}
if (!($row = mysql_fetch_object($result)))
continue;
// Hier kommt hin, was gemacht werden soll (Schleifen, Ausgaben und Wertezuweisungen)
}
// Mache am Ende
mysql_free_result($result);
###############################
*heul*
Ich bin hier am verzweifeln !!
An sich klapt alles nur eben des mit dem höchsten wert nicht !! :-/
hier mal der Code
Also es ist so alles richtig (nur für die mäkler unter uns
), daher bitte ich euch um Hilfe bezüglich der Max Abfrage !!!
Ich bin hier am verzweifeln !!
An sich klapt alles nur eben des mit dem höchsten wert nicht !! :-/
hier mal der Code
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<table align="center" width="40%" style="border: 1px #000000 solid;" cellpadding="0" cellspacing="0">
<form action="menue_update.php" method="post">
<?php
include("inc/connect_date_inc.php");
include("inc/connect_db_date.php");
$sql_anweisung_max = "SELECT menue_sort FROM pbb_menue ORDER BY menue_sort DESC LIMIT 1";
$sql_run_max = mysql_db_query($sqlname, $sql_anweisung_max, $dbcon);
while($row_max = mysql_fetch_object($sql_run_max)){
$max = $row_max->menue_sort;
for($n=1; $n <= $max; $n++){
$nr.=$nr;
}
$sql_anweisung = "SELECT menue_headline FROM pbb_menue";
$sql_run = mysql_db_query($sqlname, $sql_anweisung, $dbcon);
while($row = mysql_fetch_object($sql_run)){
$menue_headline = $row->menue_headline;
?>
<tr>
<td width="10%">
Position:
</td>
<td width="2%">
</td>
<td width="5%">
<select name="sort_nr" size="1">
<option value="<? echo $nr; ?>"><? echo $nr; ?></option>
</select>
</td>
<td width="3%">
</td>
<td width="35%">
Menü-Box-Name:
</td>
<td width="50%">
<? echo $menue_headline; ?>
</td>
</tr>
<?php
}
}
?>
<tr>
<td height="2px">
</td>
</tr>
<tr>
<td colspan="6"><center>
<input type="submit" name="update" value="Sortieren" class="input_button">
</center>
</td>
</tr>
<tr>
<td height="2px">
</td>
</tr>
</form>
</table>
|
Also es ist so alles richtig (nur für die mäkler unter uns
), daher bitte ich euch um Hilfe bezüglich der Max Abfrage !!!
Zitat von Albert Einstein:
"Geniale Menschen sind selten ordentlich, Ordentliche hingegen selten genial"
"Geniale Menschen sind selten ordentlich, Ordentliche hingegen selten genial"
Zitat
Original von Kampfbieber
![]()
PHP-Quelltext
1$sql_anweisung_max = "SELECT menue_sort FROM pbb_menue ORDER BY menue_sort DESC LIMIT 0, 1";
probiers mal so, müsste eigentlich gehen

kleiner tipp: wenn du n sql code erzeugen willst, mach erstmal die sql-abfrage in phpmyadmin und dann fügst den in php ein
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jegres« (23. Juni 2003, 14:04)
Ähnliche Themen
-
Datenbanken »-
Daten in Tabelle eingeben
(10. November 2006, 23:47)
-
PHP »-
letzten spaltenwert auslesen?
(7. Februar 2006, 20:48)
-
Datenbanken »-
Suchfunktion ?
(3. Januar 2004, 23:19)
-
PHP »-
größten Wert aus Spalte auslesen?
(5. September 2003, 21:08)
-
PHP »-
Wenn Spalte X=0 dann übernehme Wert aus Spalte Y
(3. November 2002, 13:06)



