php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.05.2005, 14:41  
Gast
 
Beiträge: n/a
Standard Syntax Suchanfrage

Hallo Leute,

ich lerne gerade PHP und MySql, als Übung schreibe ich zur Zeit ein Suchformular. Dafür habe ich habe 2 Datein erstellt. Auf dem Server läuft XAMPP 1.4.12 mit (MySql 4.1.10 und PHP 5.0.3)

suche.html


Code:
<html>
<head><title>Suche</title></head>

<body>
<form action="suche_f.php" method="post">
<div>SUCHE</div>
<table border="0" align="center">

<tr>
<td width="180">Name, Vorname 
<input type="text" size="35" name="name"></td>
</tr>

<tr>
<td width="180">Firma 
<input type="text" size="35" name="firma"></td>
</tr>

<tr>
<td align="right"><input type="submit" value="Suchen"></td>
</tr>

</table>
</form>
</html>
suche_f.php


PHP-Code:
<?php
<html>
<
head><title>Suche</title></head>

<
body>
<
table border="0" cellspacing="2" cellpadding="0" width="100%">


<?
php
$name 
$_POST["name"];
$firma $_POST["firma"];

  
$mysqlhost="localhost";
$mysqluser="root";
$mysqlpw="";
$mysqldb="abc";

$connect mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb$connect) or die("Konnte die Datenbank nicht waehlen.");



$r mysql_query('SELECT name,firma FROM abc WHERE name ='$name' AND firma='$firma' ');
if (!
$r) {
   die(
'Ungültige Abfrage: ' mysql_error());
}

while(
$a mysql_fetch_array($r))
    echo 
"<tr><td>" .$a['name'] ."</td><td>" .$a['firma'] ."</td>" ;
      
</
div>
</
body>
</
html>
Nun bekomme ich aber keine Treffer sondern nur ein Fehler:

Parse error: syntax error, unexpected T_VARIABLE in C:\XAMPP\xampp\htdocs\neuneu\suche_f.php on line 15

Kann mir jemand ein Tipp geben? Wie bekomme ich das hin das als Ergebniss nur das angezeigt wird was zuvor als Suchbegriff
in der SUCHE.HTML angegeben worde (und am besten nicht genau, es reicht wenn der Begriff vorkommt).

Vielen Dank
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.05.2005, 14:47  
Gast
 
Beiträge: n/a
Standard

Du hast ganz oben ohne Grund ein "<?php" stehen und danach kommt HTML-Quelltext. Dein Zweites <?php hast du übrigens nicht zu gemacht.
  Mit Zitat antworten
Alt 26.05.2005, 14:58  
Gast
 
Beiträge: n/a
Standard Stimmt

oh, danke daran liegt es aber nicht.
Das <?php ganz oben denken wir mal weg und unten denken wir mal ?> dazu.
  Mit Zitat antworten
Alt 26.05.2005, 15:02  
Gast
 
Beiträge: n/a
Standard

Nicht ganz unten. Das ?> muss vor das </div>
Ansonsten ist diese Zeile noch falsch:

PHP-Code:
$r mysql_query('SELECT name, firma FROM abc WHERE name ='$name' AND firma='$firma' '); 
Mach daraus mal:

PHP-Code:
$r mysql_query('SELECT name, firma FROM abc WHERE name =\''.$name.'\' AND firma=\''.$firma.'\' '); 
  Mit Zitat antworten
Alt 26.05.2005, 15:19  
Gast
 
Beiträge: n/a
Standard

Oder so:
PHP-Code:
$r mysql_query("SELECT name,firma FROM abc WHERE name ='$name' AND firma='$firma'"); 
Gruß
phpfan
  Mit Zitat antworten
Alt 26.05.2005, 15:26  
Gast
 
Beiträge: n/a
Standard Funzt leider immer noch nicht

@ phpfan

$r = mysql_query("SELECT name,firma FROM abc WHERE name ='$name' AND firma='$firma'");

Wenn ich diese Zeile benutze, bekomme ich nur eine leere Seite ohne Fehlermeldung oder Ergebniss.

@mazy haze

$r = mysql_query('SELECT name, firma FROM abc WHERE name =\''.$name.'\' AND firma=\''.$firma.'\' ');

Gibt auch nur eine leere Seite ohne Fehler oder Ergebniss.
  Mit Zitat antworten
Alt 26.05.2005, 15:38  
Gast
 
Beiträge: n/a
Standard

Man könnte ja glatt mal auf die Idee kommen, sich mit Hilfe von mysql_num_rows die Anzahl der Treffer vor der while-Schleife anzeigen lassen. Ist aber nur so eine blöde Idee.

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.


Gruß
phpfan
  Mit Zitat antworten
Alt 26.05.2005, 16:04  
Gast
 
Beiträge: n/a
Standard funzt immer noch nicht

@ phpfan

vielen dank für Deine Anregung wie ich bei der Fehlersuche vorgehen soll. Genau so bin ich auch vorgegangen und nach langer suche in Foren und Tutorials habe ich mich an die Community gewandt.

Der Fehler scheint in der Suchanfrage zu stecken, weil wenn ich mir die Anzahl der Zeilen des Ergebnisses ausgeben lasse steht dort eine 0. Hier noch mal der Code:
PHP-Code:
<?php

$name 
$_POST["name"];
$firma $_POST["firma"];

  
$mysqlhost="localhost";
$mysqluser="root";
$mysqlpw="";
$mysqldb="abc";

$connect mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb$connect) or die("Konnte die Datenbank nicht waehlen.");

$r mysql_query('SELECT name, firma FROM abc WHERE name =\''.$name.'\' AND firma=\''.$firma.'\' '); 
if (!
$r) {
       die(
'Ungültige Abfrage: ' mysql_error());
}

$zeilen mysql_num_rows($r);
print (
"
 Das Ergebnis hat "
$zeilen ." Zeilen");


while(
$a mysql_fetch_array($r))
    echo 
"<tr><td class=\"treffer\">" .$a['name'] .
         
"</td><td class=\"treffer\">".$a['firma'] ."</td><td class=\"treffer\">" .$a['strasse'] .
         
"</td><td class=\"land\">".$a['land'] ."&nbsp</td><td class=\"treffer\">" .$a['ort'] .
         
         
"</td><td class=\"faule\">".$a['date'] ."</td>" ;

?>
  Mit Zitat antworten
Alt 26.05.2005, 16:07  
Gast
 
Beiträge: n/a
Standard

Liegt es vielleicht an meiner SQL Datenbank??

Code:
CREATE TABLE `abc` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(128) NOT NULL default '',
  `firma` varchar(128) NOT NULL default '',
    PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

?>
  Mit Zitat antworten
Alt 26.05.2005, 16:14  
Gast
 
Beiträge: n/a
Standard

Vieleicht gibt es den Eintrag einfach nicht...

Probier es doch einfach mal mit

PHP-Code:
$r mysql_query('SELECT name, firma FROM abc'); 
Vorraussetzung ist natürlich, dass in der Tabelle auch schon was steht. Ausserdem kannst du nicht $a['land'] und $a['date'] abfragen, wenn du nur name und firma aus der Tabelle lädst, aber das dürfte nicht mit deinem Problem zutuen haben.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
wie müsste die korrekte Syntax sein? dh1sbg Datenbanken 2 06.05.2008 21:45
syntax nixdorf Datenbanken 3 16.07.2007 11:39
MySQL - Syntax Problem Stefajo PHP Tipps 2006 1 08.10.2006 16:22
syntax Error? dh1sbg Datenbanken 4 04.10.2006 14:32
Fehlermeldung You have an error in your SQL syntax; check... blu21 Datenbanken 2 18.09.2006 15:34
MySQL Update Syntax Error PHP Tipps 2006 2 14.03.2006 18:09
SQL - MYSQL Syntax Datenbanken 15 21.02.2006 13:35
komm bei der Syntax nicht mehr weiter PHP Tipps 2005-2 3 03.08.2005 18:09
Anfängerfrage SELECT Syntax PHP Tipps 2005 4 23.02.2005 14:45
[Erledigt] Probleme mit Delete Syntax Datenbanken 6 27.12.2004 12:07
SQL Syntax Fehler, aber wo? Calexico PHP Tipps 2004-2 7 12.11.2004 14:52
...error...for the right syntax to use near ')' at line 2 ?? anakadai PHP Tipps 2004-2 7 10.11.2004 15:39
You have an error in your SQL syntax Creativ Datenbanken 1 20.10.2004 16:00
[Erledigt] sql - syntax fehler Datenbanken 2 18.10.2004 21:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
suchanfrage in html, syntax suchanfrage, html php div syntax align=\center\;, syntax von suchanfragen sql, php suchanfragen syntax, html head suchanfragen, 7. syntax suchanfrage, php sql syntax class, php datenbank suchanfrage, suchanfrage an datenbank über php, suchanfrage php mysql, suchanfragen php übung

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.