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

3 Fragen über eine Suche, Ausgabe und Löschen

Assassins

Neues Mitglied
hallo Users,
ich habe da 3 Fragen an euch, und ich hoffe Ihr könnt mir wie immer klasse weiter helfen.
Problem 1)
Auf meiner Seite kann man sich anmelden und alle Daten werden dabei in die Datenbank gespeichert. Jetzt würde ich gerne eine "Suche" Programmieren. Bisher sieht es auch gut aus, aber das Script achtet auf die Groß- und Kleinschreibung. Und das soll er nicht, das Script soll nicht drauf achten, ob der Name jetzt Groß- oder Kleingeschrieben wird.
Datenbank Kodierung der Namen:
Name -> varchar(50) latin1_general_cs
Die suche ist bisher so aufgebaut:
Code:
<?php
echo "
        <form method=\"post\" action=\"search.php?function=submit\">
            <input type=\"text\" name=\"name\" size=\"20\">
            <input name=\"add\" type=\"submit\" id=\"add\" value=\"Suchen\">
        </form>";
// Prüfe ob POSTS gesendet wurden:
if ($_GET['function'] == "submit")
{
// Japp, Variablen wurden übermittelt
// Lese nun alle Variablen ein:
$sname = $_POST['name'];
}
else
{
// Nichts wurde abgeschicht, setze STD-Variablen
$name = "";
}
// STATUS AUS DATENBANK HOLLEN
$profilabfrage = "SELECT * FROM benutzerdaten WHERE name='$sname' ORDER BY ID DESC LIMIT 10";
$profilergebnis = mysql_query ($profilabfrage);
while ($profilrow = mysql_fetch_object ($profilergebnis))
//AUSGABE
{
Also, wie funktioniere ich das Script um, damit er nicht auf die Groß- und Kleinschreibung achtet.
---------
Problem 2)
Es handelt um die Ausgabe von oben. Ich sage ja, dass er nur Maximal 10 Ausgaben machen soll. Ich möchte aber, dass wenn mehr als 10Profile zu der Suche passen, dass er auf den nachfolgenden Seiten es weiter ausgeben soll. Wie realisier ich das?
---------
Problem 3)
Wenn ich nun zum Beispiel den User "Max" mit der ID "1" lösche, dann entsteht ja so gesehen eine Lücke in mein System. Denn unser Max hat zum Beispiel Nachrichten geschrieben (die in einer anderen Datenbank sind) und jetzt erkennt das System ja nicht, dass der User Max mit der ID 1 gar nicht mehr existiert. Deshalb wollte ich fragen, wie ich eine Seite erstellen kann, wo man drauf kommt falls die ID "1" nicht mehr existiert.. Ich hoffe Ihr habt das Verstanden ;-)

Ich hoffe auf eure Mithilfe..

Mfg
Tobi
 
Werbung:
Problem1:

„Name -> varchar(50) latin1_general_cs“ ← Das „cs“ steht für „case sensitive“. Du kannst hier entweder eine *_ci-Collation (lieber Backup machen vor dem Umstellen!) nutzen oder in der Query selbst entsprechende Funktionen anwenden und etwa alles in lowercase umwandeln (siehe etwa: MySQL :: MySQL 5.1 Reference Manual :: 11.5 String Functions).

Problem 2:

Stichwort „Pagination“. Dazu sollte sich im Web was finden lassen („php pagination“), bei Problemen einfach noch mal melden. Kurz und knapp: Anzahl Einträge ermitteln, Anzahl Seiten ermitteln, GET-Parameter „page“ mitgeben und in der Abfrage immer LIMIT $page,10 oder wie auch immer schreiben.

Problem 3:

Na ja, zum Beispiel bei Bedarf einfach ermitteln, ob der Nutzer noch existiert. „SELECT `id` FROM `benutzerdaten` WHERE `id` = 1“ → Wenn kein Datensatz zurückgegeben, Benutzer nicht mehr im System.

Häufig wird die Zeile nicht gelöscht, sondern lediglich ein Feld „deleted“ auf wahr gesetzt.
 
Zuletzt bearbeitet:
Zu Problem 1)
Vielen Dank, habe jetzt auf latin1_general_ci umgestellt und nun klappt es. Werde mir aber trotzdem die andere Seite mal anschauen.

Problem 2)
Auch vielen Dank, der Denkanstoß war gut. Ich sollte das schaffen, anonsten melde ich mich bei dir nochmal.

Problem 3)
hier lasse ich mir noch was einfallen, ob ich wie gesagt, wirklich den User komplett lösche.

Also vielen Dank für deine Hilfe...
 
Werbung:
Zurück
Oben