SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.07.2016, 16:00:31
Iskue Iskue ist offline
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) . '">&laquo; Zur&uuml;ck</a>&nbsp;';
}
for(
$i $i <= $pages $i++) {
if(
$i == $p) {
$navigation .= '<b>'.$i.'</b>';
}else{
$navigation .= '&nbsp;<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' $i '&s=' .urlencode($s) . '">'.$i.'</a>&nbsp;';
}
}
if(
$p $pages) {
$navigation .= '<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' . ($p+1) . '&s=' .urlencode($s) . '">&nbsp;Weiter &raquo;</a>';
}
echo 
'<br /><br />' $navigation;
}
}
echo 
'</div>';
 
?>
 
</body>
</html>
hoffe ihr versteht meine Frage ;)

MFG
Mit Zitat antworten
  #2  
Alt 20.07.2016, 17:04:30
chorn chorn ist offline
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.
Mit Zitat antworten
  #3  
Alt 05.08.2016, 10:03:01
Iskue Iskue ist offline
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 (&#x20AC;):">
</div>
<div id="groesse">
    <input class="input" type="text" size=10 name="groesse" placeholder="Größe (m&#xB2;):">
</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&ouml;&szlig;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 "&euro; " .$results['preis'];
				echo "</td></tr>";				
            }
				echo "</table>";		
         } else {
            echo "<p style=\"color:#E82000;\">keine Ergebnisse</p>";
        }
?>

</div>
</body>
</html>
Mit Zitat antworten
  #4  
Alt 05.08.2016, 10:21:26
chorn chorn ist offline
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?
Mit Zitat antworten
  #5  
Alt 05.08.2016, 10:26:47
Iskue Iskue ist offline
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 ;-)
Mit Zitat antworten
  #6  
Alt 05.08.2016, 12:15:41
chorn chorn ist offline
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
Mit Zitat antworten
  #7  
Alt 05.08.2016, 14:03:50
Iskue Iskue ist offline
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?
Mit Zitat antworten
  #8  
Alt 05.08.2016, 14:47:55
chorn chorn ist offline
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.
Mit Zitat antworten
  #9  
Alt 05.08.2016, 14:52:43
Iskue Iskue ist offline
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
Mit Zitat antworten
  #10  
Alt 05.08.2016, 15:19:50
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Suchabfrage funktioniert nicht richtig

einfach: nein.

lesen:

http://php.net/manual/de/pdostatement.bindvalue.php
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
INNER JOIN Suche nach mehreren Parametern wurzler MySQLi/PDO/(MySQL) 1 28.05.2013 22:03:46
Suche erweitern Lutz MySQLi/PDO/(MySQL) 3 09.04.2010 22:54:23
Suche einschränken mit mehreren Optionen Alex_3000 MySQLi/PDO/(MySQL) 1 02.08.2008 16:41:40
Suche utf-8 odessa MySQLi/PDO/(MySQL) 5 31.10.2005 13:53:43
Suche Programmieren Black-Apfelkuch PHP Grundlagen 5 20.04.2004 00:01:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:54:25 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt