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!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
20.07.2016, 15:00:31
|
Anfänger
|
|
Registriert seit: Jul 2016
Alter: 32
Beiträge: 10
|
|
Suche mit mehreren Suchbegriffe
moin moin ihr lieben,
hab da mal wieder eine frage :-D
und zwar möchte ich ein Suchformular ertsellen der meine komplette DB durchforstet.
Dieses Formular soll aus mehreren input tags bestehen...z.B: Vorname, Nachname, Adresse, usw......
Wie schonmal erwähnt bin ich nicht ganz PHP-Fit....
Ich hab da auch schonmal was zusammen gebastelt...jedoch nur mit einem Suchfeld....
nun die Frage wie erweiter ich das ganze Sinnvoll?
PHP-Code:
<?php
?>
<!-- Beginn HTML-Kopf -->
<html>
<head>
<title>Ducument</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/style.css">
</head>
<body>
<!-- Ende HTML-Kopf -->
<!-- Beginn der Suchform -->
<form name="suche" action="<?php $_SERVER['SCRIPT_NAME']; ?>" method="POST">
<input class="input" type="text" size=20 name="s">
<input class="button" type="submit" name="submit" value="Suche">
</form>
<br />
<!-- Ende der Suchform -->
<!-- Beginn der Ergebnisverarbeitung -->
<?php
error_reporting(0);
mysql_connect('localhost',' ','') or die ('Es konnte keine Verbindung zum MySQL-Server aufgebaut werden');
mysql_select_db(' ') or die ('Es konnte keine Verbindung zur Datenbank aufgebaut werden');
$limit = 10;
$s = mysql_real_escape_string(strip_tags($_POST['s']));
if($s == '') $s = $_GET['s'];
if($s == '') {
echo '<font style="color:#BF0000;">Sie haben keinen Suchbegriff eingegeben</font>';
}
else {
$p = $_GET['p'];
if($p == '') $p = 1;
$query = mysql_query("SELECT * FROM `tabelle` WHERE `spalte` LIKE '%$s%' ORDER BY `id` DESC") or die (mysql_error());
$results = mysql_num_rows($query);
if($results == 0){
echo '<font style="color:#BF0000;">Keine Treffer gefunden</font>';
}
else{
echo '<font style="color:#007F00;"><b>' . $results . '</b> Treffer gefunden</font>';
echo '<br /><br /></div><div align=left><hr noshade size=1 width=100% color=#F0F0F0 />';
$pages = ceil($results/$limit);
$result = mysql_query("SELECT * FROM `tabelle` WHERE `spalte` LIKE '%$s%' ORDER BY `id` LIMIT " . ($p-1)*$limit . ",$limit") or die (mysql_error());
while($row = mysql_fetch_object($result)) {
echo $row->spalte . '<br />';
}
echo '</div><div align=center>';
$navigation = '';
if($p > 1) {
$navigation .= '<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' . ($p-1) . '&s=' .urlencode($s) . '">« Zurück</a> ';
}
for($i = 1 ; $i <= $pages ; $i++) {
if($i == $p) {
$navigation .= '<b>'.$i.'</b>';
}else{
$navigation .= ' <a href="'.$_SERVER['SCRIPT_NAME'].'?p=' . $i . '&s=' .urlencode($s) . '">'.$i.'</a> ';
}
}
if($p < $pages) {
$navigation .= '<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' . ($p+1) . '&s=' .urlencode($s) . '"> Weiter »</a>';
}
echo '<br /><br />' . $navigation;
}
}
echo '</div>';
?>
</body>
</html>
hoffe ihr versteht meine Frage ;)
MFG
|
20.07.2016, 16:04:30
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Suche mit mehreren Suchbegriffe
Was hast du dir denn überlegt wie du das machen könntest? Vorallem wie du mehrere Suchbegriffe in SQL abbildest. Nachdenken solltest du schon erstmal selber.
Und für die Zukunft mal den Stil verbessern: Variablen nicht doppelt benutzen, aussagekräftige Variablennamen, EVA-Prinzip (googlen), mysql_* durch PDO und Prepared Statements ersetzen, Code einrücken.
|
05.08.2016, 09:03:01
|
Anfänger
|
|
Registriert seit: Jul 2016
Alter: 32
Beiträge: 10
|
|
Suchabfrage funktioniert nicht richtig
moin moin
hab so ein kleines Problem mit meiner Suchabfrage.
Am Tag wo ich es Programmiert habe funktionierte es richtig....seitdem funktioniert irgendwie nur noch ein feld und finde irgendwie den Fehler nicht.....
Vielleicht habt ihr keine Tomaten auf den Augen? ;-)
Ich weiß ist nicht ganz sauber gecodet :-)
Code:
<html>
<head>
<title>Suche</title>
<link rel="stylesheet" type="text/css" media="screen" href="../css/style.css">
</head>
<body>
<div align=center>
<h1></h1>
<h2>Was suchen Sie?</h2>
<form name="suche" action="<?php $_SERVER['SCRIPT_NAME']; ?>" method="POST">
<div id="suche">
<div id="wohnort">
<input class="input" type="text" size=20 name="ort" placeholder="PLZ, Stadtteil,..."></div>
<div id="wohnart">
<select class="input" size=1 name="wohnart">
<option value="1">Wohnung mieten</option>
<option value="2">Wohnung kaufen</option>
<option value="3">Haus mieten</option>
<option value="4">Haus kaufen</option>
<option value="5">Grundstück kaufen</option>
</select>
</div>
<div id="preis">
<input class="input" type="text" size=10 name="preis" placeholder="Preis (€):">
</div>
<div id="groesse">
<input class="input" type="text" size=10 name="groesse" placeholder="Größe (m²):">
</div>
<div id="zimmer">
<input class="input" type="text" size=10 name="zimmer" placeholder="Zimmer:">
</div>
<br />
</div>
<input class="button" type="submit" name="submit" value="Suche">
</form>
<br />
<?php
$host = "localhost";
$user = "";
$password = "";
$database_name = "wohnen";
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
$search=$_POST['zimmer'];
$search=$_POST['groesse'];
$search=$_POST['preis'];
$search=$_POST['ort'];
$query = $pdo->prepare("select * from wohnung_mieten where zimmer LIKE '%$search%' OR groesse LIKE '%$search%' OR preis LIKE '%$search%' OR ort LIKE '%$search%' LIMIT 0 , 10");
$query->bindValue(1, "%$search%", PDO::PARAM_STR);
$query->execute();
if (isset($_POST['zimmer'])
or isset($_POST['groesse'])
or isset($_POST['preis'])
or isset($_POST['ort'])) {
echo "Suchergebnisse :<br/>";
echo "<table style=\"font-family:arial;color:#333333;\">";
echo "<tr><td style=\"border:solid 1px rgb(107, 217, 79);background:rgb(107, 217, 79);\">Wohnort</td><td style=\"border:solid 1px rgb(107, 217, 79);background:rgb(107, 217, 79);\">Größe</td><td style=\"border:solid 1px rgb(107, 217, 79);background:rgb(107, 217, 79);\">Zimmer</td><td style=\"border:solid 1px rgb(107, 217, 79);background:rgb(107, 217, 79);\">Preis</td></tr>";
while ($results = $query->fetch()) {
echo "<tr><td style=\"border:solid 1px rgb(107, 217, 79);\"><a href='#'>";
echo $results['ort'];
echo "</a></td><td style=\"border:solid 1px rgb(107, 217, 79);\">";
echo $results['groesse'];
echo "</td><td style=\"border:solid 1px rgb(107, 217, 79);\">";
echo $results['zimmer'];
echo "</td><td style=\"border:solid 1px rgb(107, 217, 79);\">";
echo "€ " .$results['preis'];
echo "</td></tr>";
}
echo "</table>";
} else {
echo "<p style=\"color:#E82000;\">keine Ergebnisse</p>";
}
?>
</div>
</body>
</html>
|
05.08.2016, 09:21:26
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Suchabfrage funktioniert nicht richtig
was heisst "funktioniert nicht"? Eingabe? Erwartete Ausgabe? Erhaltene Ausgabe? Fehlermeldungen?
Und warum überschreibst du $search immer wieder?
|
05.08.2016, 09:26:47
|
Anfänger
|
|
Registriert seit: Jul 2016
Alter: 32
Beiträge: 10
|
|
AW: Suchabfrage funktioniert nicht richtig
Die Ausgabe läuft nicht richtig....wenn ich zb beim Preis feld 550 Euro eingebe spuckt er mir auch die 900 euro daten aus als beispiel....
ich dachte ich muss die einzelnen inputs mit search definieren.....macht man das nicht so??
sry für die evtl bklöde Frage so fit bin ich noch nicht in PHP....quasi noch in der Lernphase ;-)
|
05.08.2016, 11:15:41
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Suchabfrage funktioniert nicht richtig
das was da steht macht so alles keinen Sinn
PHP-Code:
$search=$_POST['zimmer']; $search=$_POST['groesse']; $search=$_POST['preis']; $search=$_POST['ort'];
in $search steht dann nacher nur der Wert aus "ort" drin, oder garnichts, falls "ort" leer war.
PHP-Code:
"select * from wohnung_mieten where zimmer LIKE '%$search%' OR groesse LIKE '%$search%'
hier ersetzt du alles durch diesen Wert (automatische String-Ersetzung in doppelten Anführungszeichen), dann steht da sowas wie
PHP-Code:
"select * from wohnung_mieten where zimmer LIKE '%München%' OR groesse LIKE '%München%'
je nachdem was in "ort" drinsteht, weil am Ende nur "ort" in $search drinsteht.
PHP-Code:
$query->bindValue(1, "%$search%", PDO::PARAM_STR);
das könnte sogar noch halbwegs funktionieren, wenn $search nicht schon längst ersetzt worden wäre - aber wenn du bindValue eine Zahl mitgibst, weiss er garnicht was er ersetzen soll. Und dann auch nur für den ersten Parameter.
Lies das hier nochmal genau durch:
http://php.net/manual/de/pdostatement.bindvalue.php
|
05.08.2016, 13:03:50
|
Anfänger
|
|
Registriert seit: Jul 2016
Alter: 32
Beiträge: 10
|
|
AW: Suchabfrage funktioniert nicht richtig
Also ich hab jetzt mal folgendes gemacht
Code:
$search[var1]=$_POST['zimmer'];
$search[var2]=$_POST['groesse'];
$search[var3]=$_POST['preis'];
$search[var4]=$_POST['ort'];
$query = $pdo->prepare("select * from wohnung_mieten where zimmer LIKE '%$search[var1]%' OR groesse LIKE '%$search[var2]%' OR preis LIKE '%$search[var3]%' OR ort LIKE '%$search[var4]%' LIMIT 0 , 10");
$query->bindValue( ':zimmer', "%$search[var1]%", PDO::PARAM_INT);
$query->bindValue( ':groesse', "%$search[var2]%", PDO::PARAM_INT);
$query->bindValue( ':preis', "%$search[var3]%", PDO::PARAM_STR);
$query->bindValue( ':ort', "%$search[var4]%", PDO::PARAM_STR);
$query->execute();
Aber so wirklich funktionieren tut es trotzdem nicht...hab immer noch den selben Fehler......oder hab ich deine Info völlig falsch verstanden?
|
05.08.2016, 13:47:55
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Suchabfrage funktioniert nicht richtig
Du überspringst einen Schritt, du gibst im Statement $search[x] an, bindest aber Parameter die :zimmer etc. heissen die garnicht vorkommen.
|
05.08.2016, 13:52:43
|
Anfänger
|
|
Registriert seit: Jul 2016
Alter: 32
Beiträge: 10
|
|
AW: Suchabfrage funktioniert nicht richtig
Meinst du bei den blindValues??
ich hatte das so verstanden das man da die spalte der tabelle definiert deswegen :zimmer, :groesse, usw
|
05.08.2016, 14:19:50
|
Junior Member
|
|
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
|
|
AW: Suchabfrage funktioniert nicht richtig
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 13:06:38 Uhr.
|