CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
10.09.2010, 18:32:45
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 44
Beiträge: 6
|
|
Mysql Suche mit LIKE darf nicht leer sein
Hallo liebe Gemeinde,
ich hätte da eine Frage in Bezug auf die Suche in MySQL mit der Funktion LIKE.
Und zwar folgendes Problem: Ich habe mittels des nachstehenden Codes ein Suchabfrage definiert, welche auch funktioniert. Mein Problem ist wenn man in das Suchfeld keinen Wert eingibt (es also leer bleibt), dass dann der gesamte Inhalt der Datenbank ausgegeben wird. Wie kann ich dies verhindern?
Hier mal der Code:
PHP-Code:
<?php
include("dbconnect.php");
?>
<?php
$varPLZ = $_GET[cPLZ];
$sql = mysql_query("SELECT name, strasse, PLZ, Ort, vertrag FROM haendlerverzeichnis WHERE PLZ LIKE '".$varPLZ."%'");
if (mysql_num_rows($sql) == 0) // Exits if your db table is empty
{
echo 'Es wurden keine passenden Daten gefunden';
exit;
}
else
{
while($row = mysql_fetch_assoc($sql))
{
echo $row["name"]." <br />";
echo $row["strasse"].", <br />";
echo $row["PLZ"]." <br />";
echo $row["Ort"]." <br />";
echo $row["vertrag"]." <br /><br />";
}
}
mysql_close($db);
?>
Ziehl ist es das mindestens eine belibige Zahl in dem Suchfeld stehen soll oder ansonsten keine Abfrage stattfindet
|
10.09.2010, 18:37:59
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Warm lässt du bei leerem Feld die Suche überhaupt durchführen?
|
10.09.2010, 18:42:41
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 44
Beiträge: 6
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Zitat:
Zitat von DokuLeseHemmung
Warm lässt du bei leerem Feld die Suche überhaupt durchführen?
|
Ähm Hallo genau das will ich ja verhindern aber weis nicht wie oder wo der fehler liegt?
|
10.09.2010, 18:44:09
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
|
10.09.2010, 19:03:43
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 44
Beiträge: 6
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Hallo Kollege,
empty ist mir als Funktion bekannt, ist aber nicht das was ich möchte.
Vielmehr wäre es mir liber wenn ich direkt im String sagen könnte das, das feld nicht leer sein soll, weil später noch ein zweites suchfeld hinzu kommt so das man nach ort und/oder PLZ suchen kann.
Gibt es nichts in der Form:
PHP-Code:
$sql = mysql_query("SELECT name, strasse, PLZ, Ort, vertrag FROM haendlerverzeichnis WHERE PLZ LIKE '".$varPLZ."%'");
und görßer als null bzw. größer als keine eingabe.
Ich weis das sich das b.. anhört :-)
|
10.09.2010, 19:18:44
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Und wenn noch hunderte weitere Bedingungen dazu kommen....
Also nochmal:
Zitat:
Warum lässt du bei leerem Feld die Suche überhaupt durchführen?
|
Oder etwas anders:
Warum willst du die PLZ Suche in das SQL Statement aufnehmen, wenn du doch gar nicht danach suchen kannst, weil keine eingegeben wurde?
|
10.09.2010, 19:33:08
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 44
Beiträge: 6
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Zitat:
Zitat von DokuLeseHemmung
Und wenn noch hunderte weitere Bedingungen dazu kommen....
Also nochmal:
Oder etwas anders:
Warum willst du die PLZ Suche in das SQL Statement aufnehmen, wenn du doch gar nicht danach suchen kannst, weil keine eingegeben wurde?
|
Ich hoffe wir reden nicht an einander vorbei. Also folgendes ich hab ja das Problem weil der User nicht nur nach der PLZ suchen kann sondern und/oder auch nach dem Ort. Ich poste dir mal den gesamten code. Mein Problem mit emty ist, das er wenn das eine Suchfeld leer ist er dann ja auch nicht das zweite suchfeld mehr abfragt.
PHP-Code:
<?php
$varPLZ = $_GET[cPLZ];
$varORT = $_GET[cOrt];
$sql = mysql_query("SELECT name, strasse, PLZ, Ort, vertrag FROM haendlerverzeichnis WHERE PLZ LIKE '".$varPLZ."%' or Ort LIKE '".$varORT."%'");
while($row = mysql_fetch_assoc($sql))
{
echo $row["name"]." <br />";
echo $row["strasse"].", <br />";
echo $row["PLZ"]." <br />";
echo $row["Ort"]." <br />";
echo $row["vertrag"]." <br /><br />";
}
mysql_close($db);
?>
<a href="suchen.html">zurück zur Suche</a>
Wie du siehst werden zwei dinge gleichzeitig abgefragt und wenn dann einf feld leer ist ...
.$varORT."%' durch das % Zeichen habe ich zumindest erreicht, dass man nicht den vollständigen wert in der suche angeben muss. Aber es muss doch möglich sein dem mit nem kurzen Befehl (ohne große Schleife zu sagen das da wenigestens ne eingabe drin sein muss.
Bitte gib mir mehr als ein link Danke!!!
|
10.09.2010, 19:54:32
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Zitat:
Mein Problem mit emty ist, das er wenn das eine Suchfeld leer ist er dann ja auch nicht das zweite suchfeld mehr abfragt.
|
Dann machst du was falsch!!!
Zitat:
Wie du siehst werden zwei dinge gleichzeitig abgefragt und wenn dann einf feld leer ist ...
|
Und?
Warum machst du den Blödsinn auch, wenn du doch genau weißt, dass du das gar nicht willst?
PHP-Code:
<?php
error_reporting(-1);
ini_set('display_errors', TRUE);
// mysql Verbindung herstellen
$whereteil = array();
if(!empty($_GET['cPLZ']))
{
$varPLZ = mysql_real_escape_string($_GET['cPLZ']);
$whereteil[] = "PLZ LIKE '$varPLZ%'";
}
if(!empty($_GET['cOrt']))
{
$varORT = mysql_real_escape_string($_GET['cOrt']);
$whereteil[] = "Ort LIKE '$varORT%'";
}
if($whereteil) $whereteil = " WHERE ". implode(' OR ',$whereteil);
$sql = "SELECT name, strasse, PLZ, Ort, vertrag
FROM haendlerverzeichnis
$whereteil ";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo $row["name"]." <br />";
echo $row["strasse"].", <br />";
echo $row["PLZ"]." <br />";
echo $row["Ort"]." <br />";
echo $row["vertrag"]." <br /><br />";
}
// mysql_close($db); // weglassen!!
?>
<a href="suchen.html">zurück zur Suche</a>
|
10.09.2010, 20:12:44
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 44
Beiträge: 6
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Du bist mein Held!!!!
DANKE!!!!!!!
aber erklärste du mir auch ein wenig davon sonst macht es beim nächten mal keinen sinn Ich bin noch Anfänger und zu folgenden Dinge wäre ne kurze erklärung super ich will es ja lernen nicht nur den Code bekommen.
wozu ist das:
PHP-Code:
error_reporting(-1);
ini_set('display_errors', TRUE);
Ich habe in meiner dbconnect.php folgendes schon drine.
PHP-Code:
<?php
$db = mysql_connect("localhost","root","") or die
("Keine Verbindung moeglich");
mysql_select_db("elektrolux") or die
("Die Datenbank existiert nicht.");
?>
Wieso soll ich mysql_close($db); weglassen. Ich habe wärend meines rum bastelns irgendwann mal ne endlos Schleife drine gehabt und bekam vom rechner die meldung nach kein RAM mehr bzw voll und dann ist er abgestürzt und ich dachte damit kann ich das verhindern.
|
10.09.2010, 20:48:24
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 44
Beiträge: 6
|
|
AW: Mysql Suche mit LIKE darf nicht leer sein
Na jut du hast bestimmt noch mehr zu tun. Ich werd mich wohl noch ne weile belesen müssen. Auf jeden Fall bist du mein neuer bester Freund wie Homer sagen würde. Danke nochmal! Hast es echt drauf!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:54:35 Uhr.
|