Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Mein erstes script [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Mein erstes script


 
sara E.
18-06-2004, 01:29 
 
Hallo

Nichts weltbewegendes aber ich habe mal versucht für unsere kleinanzeigenmarkt seite eine regionalsuche zu schreiben.
Ich habe mich versucht nach allen richtlinien zu halten aber kriege es doch nicht hin.

Dieses ist mein script:
############################
<?PHP
switch ($plznr) {
$query = "select * from tabelle WHERE id , title , AND (location_zip>79999) AND (location_zip < 90000)";
};


// Connect
$db_server="xxxxx";
$db_name="xxxxxx";
$db_user="xxxxxx";
$db_passwort="xxxxxx";

$erg_griff=db_query($query);

echo "Plz bereich $plznr";

while ($Datensatz=mysql_fetch_row($erg_griff))
{

// Ausgabe
echo "<a href="id=$Datensatz[0]"> $Datensatz[1] - $Datensatz[2] </a>";
};
?>
###############################################

Und dieses ist mein Link dazu http://www.meinedomain.de/plzsuche.php?plznr=8

Was mach ich hier bitte falsch?

Ich bekomme immer nur fehlermeldungen.

Grüße Sara

PHP-Tags sponsored by Goth

 
Wendel
18-06-2004, 03:14 
 
Moin Sara,
bevor Du hier böse Antworten bekommst n paar Tips:
1. Deine hash-Zeichen(#) kannst Du Dir sparen nutze entweder den "PHP-Button" der Dir bei der Eingabe geboten wird um Deinen Code kenntlich zu machen oder schreib am Anfang \[PHP\] und am Ende \[/PHP\].(Ohne die Backslashs!)
2. Konzentrier Dich erst mal auf die SQL-Abfrage:
"SELECT * FROM tabellenname WHERE id=irgendein übergebener Wert
AND title=irgendein übergebener Wert AND location_zip BETWEEN deine zwei begrenzungswerte"
or die("Abfrage fehlgeschlagen,error_code=".mysql_error());
Dann übergibst Du Deine Ergebnismenge der Abfrage an die Variable
$erg_grifff=mysql_query($query);
Dann
while($Datensatz=mysql_fetch_row($erg_griff))
{
echo $Datensatz;
}
Wenn das klappt, gehts weiter
Sorry, is spät ich sach gute nacht

 
yezariel
18-06-2004, 08:30 
 
Hi!

Ein weiterer Fehler ist wohl deine switch-Anweisung wobei ich auch nicht genau weiss, was du damit bezwecken möchtest. Zu einem switch gehört auch ein case...

Tipp: Schau doch mal hier (http://www.php.net/download-docs.php) . Dort findest du eine PHP-Doku im Windows-Help format (.chm). Hat mir sehr geholfen und tut es immer noch.

Gruss

Yeza

 
marc75
18-06-2004, 08:37 
 
Original geschrieben von sara E.
Hallo


Ich habe mich versucht nach allen richtlinien zu halten aber kriege es doch nicht hin.
Grüße Sara

verwende auch mal mysql_error();
dann register_global beachten, $_GET $_POST etc.

switch ($plznr) {
vorher prüfen ob $plznr definiert ist.
und funktionsweise von switch anschauen

while ($Datensatz=mysql_fetch_row($erg_griff))
{

// Ausgabe
echo "<a href="id=$Datensatz[0]"> $Datensatz[1] - $Datensatz[2] </a>";
};


print_r($Datensatz); in der While, ausgabe testen.

mysql_fetch_array mal anschauen.

weiter Infos:
www.php.net

 
sara E.
18-06-2004, 15:15 
 
Also seit heute morgen versuche alle versionen aber es will nicht klappe bitte um Hiiiiiiiilfe!

das ist mein Aktueller stand.
case ($plznr)
{
9) $query="SELECT Iid,title , now_price, ends FROM `a_auctions` WHERE (location_zip>89999) AND (location_zip < 100000) AND (closed=1)";
};


$db_server="localhost";
$db_name="xxx";
$db_user="wxxx";
$db_passwort="xxx";

$erg_griff=db_query($query);

echo "Plz bereich $plznr";

while ($Datensatz=mysql_fetch_row($erg_griff))
{
echo "<a href="ID=$Datensatz[0]">$Datensatz[1] - $Datensatz[2] - $Datensatz[3] </a>";
};

 
jochenj
18-06-2004, 15:21 
 
schau dir das mal genau an

http://www.php.net/manual/de/control-structures.switch.php

denke an die [php] tags um deinen code

 
Gae-Bulga
18-06-2004, 16:04 
 
while ($Datensatz=mysql_fetch_row($erg_griff))
{
echo "<a href="ID=$Datensatz[0]">$Datensatz[1] - $Datensatz[2] - $Datensatz[3] </a>";
};

Hmmm, mal vom switch ... case abgesehen: du weisst, dass wenn du echo mit " benutzt, du die normalen " im echo escapen musst, oder? Kann da jetzt noch nicht genau draus erkennen obs gewollt ist, oder nicht.

Ansonsten würds halt so aussehen:

echo "<a href=\"ID=$Datensatz[0]\">$Datensatz[1] - $Datensatz[2] - $Datensatz[3] </a>";


alternativ ginge auch

echo "<a href=\"ID=".$Datensatz[0]."\">$Datensatz[1] - $Datensatz[2] - $Datensatz[3] </a>";

... dieses ID verwirrt mich zu sehr x_X soll das eine gültige URL sein?

 
Wendel
19-06-2004, 01:13 
 
Hi,
was will denn nicht klappen? Du hast jede menge freundliche Tips und Anregungen bekommen aber nicht mal die Hälfte davon umgesetzt!
mysql_error() ist keine Anfängerfunktion die man einfach so weglässt, sondern enorm Hilfreich bei der Fehlersuche.
Wenn Du Fehlermeldungen bekommst dann poste die auch!
Da kann man jede mange draus ableiten.
Nochmal:
1. Fang mit der SQL Abfrage an. Isoliert. Teste ob das klappt, sprich ob Du Dein von der Abfrage erwartetes Ergebnis auch erhälst.
Ohne das ganze drumherum!
Das gleiche gilt für die switch Anweisung. Isolieren und Testen z.B.
mit der einfachen Ausgabe echo "Es klappt".
Dann setzt Du das zusammen.
Also Du switcht und wenn der Fall Eintrit kommt Deine Datenbankabfrage.
1. $query="SELECT Iid,title , now_price, ends FROM `a_auctions` WHERE (location_zip>89999) AND
(location_zip < 100000) AND (closed=1)";
$erg_griff=mysql_query($query)
or die ("Abfrage fehlgeschlagen, error code = ".mysql_error());
while ($Datensatz=mysql_fetch_row($erg_griff))
{
echo $Datensatz;
}
Frage: Was sollen die ganzen $db Variablen Wertzuweisungen
$db_server="localhost";
$db_name="xxx";
$db_user="wxxx";
$db_passwort="xxx";

zwischen Deiner Abfrage und der Übergabe der Ergebnismenge?
Ist kein guter programmierstil. Immer eins nach dem anderen!
Das is jetzt nich bös gemeint, aber wenn Du Fragen stellst, dann beherzige auch die Antworten bzw. Hilfsvorschläge.
Es haben Dir hier nicht nur einige links geboten, wo du Dich schlau machen kannst, sondern es sind sogar direkte codevorschläge gepostet worden
z.B. von marc75 und Gae-Bulga!
Und wenn Du uns morgen postest bis wohin Du gekommen bist(was klappt) und was darüberhinaus beim Zusammensetzen für Fehlermeldungen
auftreten hilft Dir hier gerne jeder weiter.
Gruß Wendel

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:24 Uhr.