php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-09-2009, 15:53
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard filtern und sortieren ??

Hallo
Ich baue grad eine neue Website und hab da ein kleines Problem, und hoffe das mir jemand damit weiter helfen kann, obwohl die Seite auf niederländisch ist.
Also auf der Seite
|| Estero || Accommodaties op Kreta habe ich ein "Produktkatalog". Ich hab ein Filter-Script und ein Sortier-Script. Das Sortieren funktionier perfekt, aber das Filteren nicht.

hier das Script:
PHP-Code:
<?php $query "SELECT village, COUNT(name) AS total FROM accos WHERE streek ='Kreta' GROUP BY village";
$result mysql_query $query ) or die ( mysql_error () );
 
$maxRows_accos 5;
$pageNum_accos 0;
if (isset(
$_GET['pageNum_accos'])) {
  
$pageNum_accos $_GET['pageNum_accos'];
}
$startRow_accos $pageNum_accos $maxRows_accos;
 
mysql_select_db($database_db$db);
$sort_by "";
    if(isset(
$_GET['sort'])){
        
$sort $_GET['sort'];
        if(
$sort == "price_from" or $sort == "name" or $sort == "village" or $sort == "regio" or $sort == "country"){
            
$sort_by " ORDER BY `".$sort."`";
        }
    }
$query_accos "SELECT * FROM accos WHERE streek='Kreta'".$filter.$sort_by 
$query_limit_accos sprintf("%s LIMIT %d, %d"$query_accos$startRow_accos$maxRows_accos);
$accos mysql_query($query_limit_accos$db) or die(mysql_error());
$row_accos mysql_fetch_assoc($accos);
 
 
if (isset(
$_GET['totalRows_accos'])) {
  
$totalRows_accos $_GET['totalRows_accos'];
} else {
  
$all_accos mysql_query($query_accos);
  
$totalRows_accos mysql_num_rows($all_accos);
}
$totalPages_accos ceil($totalRows_accos/$maxRows_accos)-1;
 
$queryString_accos "";
if (!empty(
$_SERVER['QUERY_STRING'])) {
   
$params explode("&"$_SERVER['QUERY_STRING']);
  
$newParams = array();
  foreach (
$params as $param) {
    if (
stristr($param"pageNum_accos") == false && 
        
stristr($param"totalRows_accos") == false) {
      
array_push($newParams$param);
    }
  }
  if (
count($newParams) != 0) {
    
$queryString_accos "&amp;" htmlentities(implode("&amp;"$newParams));
  }
}
$queryString_accos sprintf("&amp;totalRows_accos=%d%s"$totalRows_accos$queryString_accos);
 
$sort_by "";
    if(isset(
$_GET['sort'])){
        
$sort $_GET['sort'];
        if(
$sort == "price_from" or $sort == "name" or $sort == "village" or $sort == "streek" or $sort == "country"){
            
$sort_by " ORDER BY `".$sort."`";
        }
    }
 
$filter "";
 
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Villa") {
    
$filter "type = 'Villa'";;
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Hotel") {
    
$filter "type = 'Hotel'";
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Appartement") {
    
$filter "type = 'Appartement'";
}
 
$query_accos "SELECT * FROM `accos` " .$filter.$sort_by  ;
 
 
 
?>
Wo ist der FEHLER ???
Mit Zitat antworten
  #2 (permalink)  
Alt 18-09-2009, 16:03
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

bitte schildere das Problem konkret und nachvollziehbar.

Auf den ersten Blick:

Code:
$query_accos = "SELECT * FROM accos WHERE streek='Kreta'".$filter.$sort_by ;
$filter ist nicht definiert.

Gruß,

Amica
Mit Zitat antworten
  #3 (permalink)  
Alt 18-09-2009, 16:07
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard

Hallo AmicaNoctis
Danke erstmal für deine schnelle Antwort, aber du schreibst

Zitat:
$filter ist nicht definiert.
das ist es doch in
PHP-Code:
$filter "";
 
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Villa") {
    
$filter "type = 'Villa'";;
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Hotel") {
    
$filter "type = 'Hotel'";
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Appartement") {
    
$filter "type = 'Appartement'";

und
HTML-Code:
<select name="select" onchange="filter('index.php?filter=', this)">
  <option value="" selected="selected">Filter op...</option>
  <option value="Hotel">Hotel</option>
  <option value="Appartement">Appartement</option>
  <option value="Villa">Villa</option>
</select>
Oder versteh ich dich nicht ???

Mein Problem ist, das wenn ich z.B. Villa auswähle ich folgenden error bekomme
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Villa LIMIT 0, 5' at line 1"

Geändert von estero (18-09-2009 um 16:09 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 18-09-2009, 16:09
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ja da unten schon, aber du benutzt es schon viel früher (Zeile 19) und da ist es noch nicht definiert.
Mit Zitat antworten
  #5 (permalink)  
Alt 18-09-2009, 16:24
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard

ja ok, aber was muss ich denn jetzt hinzufügen ?? oder löschen ??
Ich glaub ich steh auf dem Schlauch
Mit Zitat antworten
  #6 (permalink)  
Alt 18-09-2009, 16:27
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich glaube, ich hatte schon erwähnt, dass du dein Problem noch nicht ausreichend geschildert hast.

"Funktioniert nicht" ist keine Fehlerbeschreibung! Schreib doch mal, welche Fehlermeldungen du bekommst, was passieren soll und was stattdessen passiert! Vielleicht kommen wir dann weiter.
Mit Zitat antworten
  #7 (permalink)  
Alt 18-09-2009, 16:32
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard

So wie eben schon geschrieben ist die Fehlermeldung "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Villa LIMIT 0, 5' at line 1"
. Aber nun noch mal von anfang an.

Also; Ich habe auf der Seite 2 drop down menus. eins zum sortieren und das andere zum filtern.

das sortieren, z.B. auf den Preis, funktioniert, aber wenn ich im drop down menu z.B. Villa auswähle zum filtern, krieg ich die genannte Errormeldung !
Mit Zitat antworten
  #8 (permalink)  
Alt 18-09-2009, 16:34
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Vielleicht solltest du den Suchbegriff (Villa) in Anführungszeichen schreiben.
Mit Zitat antworten
  #9 (permalink)  
Alt 18-09-2009, 16:38
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard

???
Zitat:
Vielleicht solltest du den Suchbegriff (Villa) in Anführungszeichen schreiben.
WO ?
im drop down menu steht es in Anführungszeichen
HTML-Code:
<select name="select" onchange="filter('index.php?filter=', this)">
  <option value="" selected="selected">Filter op...</option>
  <option value="Hotel">Hotel</option>
  <option value="Appartement">Appartement</option>
  <option value="Villa">Villa</option>
</select>
und in der Adresszeile vom Browser steht auch
Code:
http://www.estero-travel.com/nl/Bestemmingen/Griekenland/Kreta/index.php?filter=Villa
wenn ich Villa gewählt hab im menu !
Mit Zitat antworten
  #10 (permalink)  
Alt 18-09-2009, 16:39
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von estero Beitrag anzeigen
So wie eben schon geschrieben ist die Fehlermeldung "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Villa LIMIT 0, 5' at line 1"
Dann betreibe Debugging.

Peter Kropff - Tutorials - PHP / MySQL - Fehlersuche - Die kaputte Datenbank
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 18-09-2009, 17:52
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von estero Beitrag anzeigen
WO ?
Natürlich im SQL Statement, das sagt doch schon die Fehlermeldung! Villa ist nunmal weder SQL-Schlüsselwort noch Spalte, sondern ein String/Varchar und der gehört nun mal in Anführungszeichen. Vielleicht solltest du dir die Statements mal ansehen, die du generierst, dann siehst du auch schneller was da nicht stimmt.
Mit Zitat antworten
  #12 (permalink)  
Alt 18-09-2009, 21:02
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard

Nicht jeder hier im Forum ist ein Profie !
Zitat:
Natürlich im SQL Statement, das sagt doch schon die Fehlermeldung! Villa ist nunmal weder SQL-Schlüsselwort noch Spalte, sondern ein String/Varchar und der gehört nun mal in Anführungszeichen.
hier stehen doch die Schluesselwoerter in ""
PHP-Code:
$filter "";
 
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Villa") {
    
$filter "type = 'Villa'";;
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Hotel") {
    
$filter "type = 'Hotel'";
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Appartement") {
    
$filter "type = 'Appartement'";

Mit Zitat antworten
  #13 (permalink)  
Alt 18-09-2009, 21:18
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von estero Beitrag anzeigen
hier stehen doch die Schluesselwoerter in ""
PHP-Code:
$filter "";
 
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Villa") {
    
$filter "type = 'Villa'";;
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Hotel") {
    
$filter "type = 'Hotel'";
}
if (isset(
$_GET["filter"]) && $_GET["filter"] == "Appartement") {
    
$filter "type = 'Appartement'";

Aber sie stehen möglicherweise nicht im eigentlichen Querry in Anführungszeichen. Und das ist entscheidend. Was ergibt ein
PHP-Code:
echo $query_accos
Und das Ergebnis solltest du mal über ein MySQL-Frontend wie PHPMyAdmin direkt auf die Datenbank loslassen. Dann siehst du auch den Fehler.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (18-09-2009 um 21:21 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 19-09-2009, 14:12
Caine Luveno
 Registrierter Benutzer
Links : Onlinestatus : Caine Luveno ist offline
Registriert seit: May 2004
Beiträge: 40
Caine Luveno ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielleicht ist es noch zu früh weil ich grad ausm Bett komme... ABER:
PHP-Code:
$query_accos "SELECT * FROM accos WHERE streek='Kreta'".$filter.$sort_by 
PHP-Code:
if (isset($_GET["filter"]) && $_GET["filter"] == "Villa") {
    
$filter "type = 'Villa'";;

da kommt doch raus:

PHP-Code:
SELECT FROM accos WHERE streek='Kreta'type 'Villa' 
müsste doch aber

PHP-Code:
SELECT FROM accos WHERE streek='Kreta' AND type 'Villa' 
sein. Und bei:

PHP-Code:
$query_accos "SELECT * FROM `accos` " .$filter.$sort_by  
fehlt dann das WHERE

Geändert von Caine Luveno (19-09-2009 um 14:16 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 19-09-2009, 22:31
estero
 Registrierter Benutzer
Links : Onlinestatus : estero ist offline
Registriert seit: Sep 2009
Beiträge: 7
estero befindet sich auf einem aufstrebenden Ast
Standard

Hab es herausgefunden !!
Es musste so sein
PHP-Code:
$query_accos "SELECT * FROM accos WHERE streek='Kreta' AND".$filter.$sort_by 
PHP-Code:
if (isset($_GET["filter"]) && $_GET["filter"] == "Villa") {
    
$filter "type = 'Villa'";;

DAnke fuer eure Hilfe
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL filtern snake23 SQL / Datenbanken 5 18-08-2005 19:44
URL filtern DannyL PHP Developer Forum 4 23-01-2005 21:15
filtern und sortieren icon PHP Developer Forum 9 02-05-2004 16:48
E-Mailadresse filtern joern PHP Developer Forum 9 12-01-2004 12:00
Array filtern und sortieren ChatJack PHP Developer Forum 2 22-10-2002 14:10

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:52 Uhr.