Sponsor-Board.de

Normale Version: PHP Frage
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, undzwar bräuchte ich hilfe, ich habe ein code der was von der Datenbank ausgibt. Wenn ich diesen Code aufrufe zeigt er mir in der Tabelle vom Datenbank immer das Letze an.

http://picul.de/700x500/pm/nH4(!https)

Ich möchte das er mir aber immer die erste spalte zeigt.

Hier der Code:

PHP-Code:
<?php
session_start
();
include(
'_db.php');
//Verbindung aufbauen
$db mysql_connect($host$dbuser$dbpass);
mysql_select_db($dbname,$db);
if (!isset(
$_GET['User']) or empty($_GET['User'])) {
    die(include(
'nopage.php'));
}
elseif(!isset(
$_GET['Page']) or empty($_GET['Page'])) {
    
$User $_GET['User'];
    
$erste mysql_query("SELECT LinkName FROM ".$User);
    while(
$myrow=mysql_fetch_array($erste)) {
        
$Page $myrow['LinkName'];
    }
}
elseif(
$_GET['Page'] == "*") {
    die(
'Betrugsversuch entdeckt! Vorgang abgebrochen!');
}
else {
    
$User $_GET['User'];
    
$Page $_GET['Page'];
}
$u2source mysql_query("SELECT Username FROM user WHERE Username LIKE '%".$User."%'");
while(
$myrow=mysql_fetch_array($u2source)) {
    
$User2 $myrow['Username'];
}

function 
umlautepas($string){
  
$upas = Array("ä" => "ae""ü" => "ue""ö" => "oe""Ä" => "Ae""Ãœ" => "Ue""Ö" => "Oe");
  return 
strtr($string$upas);
  }

               
//Das Design des User auslesen
$Design mysql_query("SELECT Design FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
//Jetzt noch den Titel auslesen
$Titel mysql_query("SELECT Titel FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
$header mysql_query("SELECT header FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
$footer mysql_query("SELECT footer FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
//Meta-Tags
$metadesc mysql_query("SELECT metadesc FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
$metakey mysql_query("SELECT metakey FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
$metaautor mysql_query("SELECT metaautor FROM user WHERE Username = '$User';") or die('<h2>Die aufgerufene Seite existiert nicht.</h2>');
//Jetzt die Men�-Items auslesen
$MenuItem mysql_query("SELECT LinkURL FROM $User ORDER BY ID;") or $MenuItem mysql_query("SELECT LinkURL FROM $User2 ORDER BY ID;");
$Anzahl count($MenuItem);
//Jetzt die aktuelle Seite auslesen
$CurText mysql_query("SELECT LinkText FROM $User WHERE LinkName = '".utf8_decode($Page)."' ORDER BY ID;") or $CurText mysql_query("SELECT LinkText FROM $User2 WHERE LinkName = '".utf8_decode($Page)."' ORDER BY ID;");

//Let's rock!
while($myrow=mysql_fetch_array($Design)) {
    
$Userdesign $myrow['Design'];
}
include(
'themes/' $Userdesign '.php');
mysql_close($db);


?>

Verstehe ich das richtig, du hast mehrere Spalten und möchtest nur die erste auslesen?
SQL bietet da eine ganze Palette

WHERE, LIMIT, ORDER BY

ich verstehe das Problem nicht.

PS:

PHP-Code:
$User $_GET['User'];
$erste mysql_query("SELECT LinkName FROM ".$User); 

SQL Inject?

also wenn du diese seite aufrufst [Link: Registrierung erforderlich] kommst du zu der Textseite "Test5" obwohl dies ja ganz unten ist. Ganz oben wäre "Home" und ich möchte das mir immer der oberste gezeigt wird.

Home hat die ID nummer 6, und Test5 die ID nummer 11

AleviGenc schrieb:
also wenn du diese seite aufrufst [Link: Registrierung erforderlich] kommst du zu der Textseite "Test5" obwohl dies ja ganz unten ist. Ganz oben wäre "Home" und ich möchte das mir immer der oberste gezeigt wird.

Home hat die ID nummer 6, und Test5 die ID nummer 11

1. wieso? Ich denke,d ass hier Denkfehler ind er Umsetzung das Problem ist.

Lösung:
ORDER BY id ASC

AleviGenc schrieb:

PHP-Code:
elseif(!isset($_GET['Page']) or empty($_GET['Page'])) {
    
$User $_GET['User'];
    
$erste mysql_query("SELECT LinkName FROM ".$User);
    while(
$myrow=mysql_fetch_array($erste)) {
        
$Page $myrow['LinkName'];
    }

Das ist der entsprechende Teil, richtig? So wie ich das sehe werden alle Einträge in der Tabelle durchgegangen und $Page wird andauernd überschrieben, bis die Schleife beim letzten Eintrag angekommen ist. Also die Abfrage auf ein Ergebnis limitieren.

War ja klar das es so logisch ist Biggrin Danke hat geklappt ^^

Ringelnatz schrieb:

AleviGenc schrieb:

PHP-Code:
elseif(!isset($_GET['Page']) or empty($_GET['Page'])) {
    
$User $_GET['User'];
    
$erste mysql_query("SELECT LinkName FROM ".$User);
    while(
$myrow=mysql_fetch_array($erste)) {
        
$Page $myrow['LinkName'];
    }

Das ist der entsprechende Teil, richtig? So wie ich das sehe werden alle Einträge in der Tabelle durchgegangen und $Page wird andauernd überschrieben, bis die Schleife beim letzten Eintrag angekommen ist. Also die Abfrage auf ein Ergebnis limitieren.

PHP-Code:
$erste mysql_query("SELECT LinkName FROM ".$User."ORDER BY id ASC LIMIT 1"); 

Eigentlich ja logisch ... typisch Biggrin die einfachen sachen kommen nicht in den Kopf XD DANKE !!!!!!
generelle Sachen nicht vergessen:

1. mysql_* ist veraltet - entweder mysqli oder gleich PDO (dann würde 2. wegfallen)
2. die Variablen escapen

[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
Referenz-URLs