MySQL Query auf Link legen

Chucky-GFX

Mitglied
Hallo!
Ich habe vor ein paar Tagen angefangen PHP zu lernen.
Nun versuche ich grade eine Telefonliste zu erstellen, wo sich die User selber eintragen können!
Das ist alles soweit kein Problem. Jedoch möchte ich es gerne so haben das ich einen Link habe womit ich das ganze nach Nachnamen etc. Sortieren kann und auch wo ich das ganze nach Buchstaben anzeigen lassen will. Also nur Nachnamen mit B z.b.

Nun würde ich gerne wissen wie die einfachste Lösung wäre

Code:
echo "<a href=output.php?anfangsb=$anfangsb>B</a>";
 $ergebnis=mysql_query("SELECT * FROM liste WHERE nachname like '".$anfangsb."%' ORDER BY nachname ASC");

So schaut es zur Zeit aus. Wenn ich nun in der URL den Buchstabe eingebe funktioniert die Abfrage, jedoch soll das auch über auswahl durch einen Link funktionieren.
Könntet ihr mir weiter helfen ?

Gruß Chucky
 
Die einfachste Lösung? Keine Ahnung, aber eine sinnvolle Lösung ist es.

Du solltest wohl besser 26 Links haben, die so aufgebaut sind:
HTML:
<a href="output.php?anfangsb=A">A</a>
usw.
Die kannst Du mit PHP in einer Schleife erzeugen lassen:
PHP:
for ($i=65;$i<91;$i++) {
    $b=chr($i);
    echo "<a href=\"output.php?anfangsb=".$b."\">".$b."</a>";
}

Der Zugriff auf $anfangsb sollte nicht direkt geschehen, da register_globals auf vielen Servern ausgeschaltet ist. Das sollte man sich gleich angewöhnen:
PHP:
$anfangsb=$_GET['anfangsb'];

Du solltest Variablen, die in ein MySQL-Query einfliessen mit [phpf]mysql_escape_string[/phpf] bearbeiten, um MySQL-Injection vorzubeugen:
PHP:
$ergebnis=mysql_query("SELECT * FROM liste WHERE nachname like '".mysql_escape_string($anfangsb)."%' ORDER BY nachname ASC");

Stell Dir vor, der User schreibt sowas in die URL:
Code:
...?anfangsb=';DELETE FROM liste;
Das ist zum Beispiel MySQL-Injection.

Ich hoffe mal, das war Deine Frage.

Gruß hpvw
 
PHP:
<?php

	/* Links */
	echo '<a href="output.php?anfangsb=a">A</a>';
	echo '<a href="output.php?anfangsb=b">B</a>';

	/* Abfrage */
	if(!empty($anfangsb)) {
		$ergebnis=mysql_query("SELECT 
									* 
								FROM 
									liste 
								WHERE 
									nachname 
								LIKE 
									'".$anfangsb."%' 
								ORDER BY 
									nachname ASC"); //Abfrage sortiert (nachname)
	} else {
		$ergebnis=mysql_query("SELECT 
									* 
								FROM 
									liste");	//Standard Abfrage
	}
?>
 
Zuletzt bearbeitet:
Zurück