• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Array in for-Schleife sortieren

befubo

Mitglied
Hallo zusammen

Hab da mal wieder ne Frage ;)

Ich habe folgendes Script geschrieben:


PHP:
  mysql_connect("localhost",
  "XXX","XXX") or die
  ("Keine Verbindung moeglich");
  mysql_select_db("XXX") or die
  ("Die Datenbank existiert nicht");

  $name = $_POST["name"];



$zustand1 = Array(); 
$abfrage = "SELECT zustand From video WHERE name LIKE ('%$name%')";
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
    $zustand1[] = $row->zustand; 
} 





$name1 = Array(); 
$abfrage = "SELECT name From video WHERE name LIKE ('%$name%')";
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
    $name1[] = $row->name; 
} 




$nummer1 = Array(); 
$abfrage = "SELECT nummer From video WHERE name LIKE ('%$name%')";
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
    $nummer1[] = $row->nummer; 
} 
$anzahl = count($nummer1);



for($count = 0; $count < $anzahl; $count++)
    {


echo "Nummer: $nummer1[$count]<br>";
echo "Name: $name1[$count]<br>";
echo "Art: $zustand1[$count]<br><br>";


}
?>


So
Es werden mir alle Ergebnisse schön ausgegeben. Allerdings nicht sortiert. ich möchte jetzt gerne dass alle Ausgaben nach dem Array $nummer1[] sortiert werden. Wie stelle ich das an?

THX und mfg
befubo
 
Werbung:
hi

danke mal für deine Antwort. Aber iwie blick ich da nicht ganz durch.
kannst du mir mal erklären, wie ich das jetzt in meinem Fall machen muss?

ich hab ja in meiner Tabelle diese Zeilen z.B. :




Ich kann auf id klicken und sie sortieren sich so... aber da passiert in der Ausgabe nichts. Also was soll ich genau tun?! (Sry, raffs grad voll nicht :shock:)
 
Werbung:
Ich kann auf id klicken und sie sortieren sich so... aber da passiert in der Ausgabe nichts.
Natürlich nicht, das ist ja auch nur die Anzeige in deinem Programm. Wenn du die Ausgabe der Datenbank ändern willst, musst du das in dem Statement machen, dafür ist ORDER BY.

Dort stehen Beispiele und Erklärungen, was davon verstehst du nicht oder hast ausprobiert und funktioniert nicht?
 
hmm

also
Ich habe folgenden SQL Code ausführen lassen:

Code:
SELECT * FROM video
  ORDER BY nummer
Dann wird dieses Fenster ausgegeben:



bei der Abfrage wird aber wieder alles wie sonst ausgegeben. Ich habs dann auch mal mit

Code:
SELECT * FROM video
  ORDER BY nummer DESC
versucht, macht aber kein Unterschied...
 
Hallo,

dies hier:

PHP:
$zustand1 = Array(); 
$abfrage = "SELECT zustand From video WHERE name LIKE ('%$name%')";
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
    $zustand1[] = $row->zustand; 
} 





$name1 = Array(); 
$abfrage = "SELECT name From video WHERE name LIKE ('%$name%')";
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
    $name1[] = $row->name; 
} 




$nummer1 = Array(); 
$abfrage = "SELECT nummer From video WHERE name LIKE ('%$name%')";
$ergebnis = mysql_query($abfrage); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
    $nummer1[] = $row->nummer; 
}

ist Käse!

Besser (arbeite mit mehrdimensionalen Arrays):
PHP:
<?php
$name = $_POST["name"];

$videos = array('zustand'     => array(),
                'name'        => array(),
                'nummer'      => array(),
);

$abfrage = "SELECT
                  `zustand`        ,
                  `name`           ,
                  `nummer`
            FROM
                  `video`
            WHERE
                  `name` LIKE '%" . $name . "%'
            ORDER BY
                  `name`
";

$ergebnis = mysql_query($abfrage) OR die (mysql_error());

while($row = mysql_fetch_object($ergebnis))
{
  $videos["zustand"][]                     = $row->zustand;
  $videos["name"][]                        = $row->name;
  $videos["nummer"][]                      = $row->nummer;
}

// ergebnis
echo '<pre>', print_r($videos), '</pre>';

Gruß
 
Werbung:
hi

erstmal danke, hab dein Script gleich mal probiert, hab da aber ein kleenes Problem:

Ausgabe bei meiner Lösung:





Ausgabe bei deiner Lösung:




Weisst du, was ich meine?
 
Hallo,

klar weiß ich was du meinst, aber das ist kein Problem. Du musst natürlich die Ausgabe nach deinen Wünschen formatieren. Dazu musst du dich ein wenig mit Arrays auskennen:

Arrays: Seite 1
Arrays: Seite 2
Arrays: Seite 3

Zum Auslesen kannst du Schleifen benutzen:

http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=133&group=25

und/oder

http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=134&group=25

Bitte durchlesen. Wenn du dann Probleme hast, kannst du ja nochmal nachfragen!

Gruß
 
Zurück
Oben