PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Hilfe bei Suchformular [Anfänger] (http://www.selfphp.de/forum/showthread.php?t=14041)

Hardy74 21.07.2006 13:08:04

Hilfe bei Suchformular [Anfänger]
 
Hi

Ich mache zur Zeit meine ersten Gehversuche mit PHP und habe zu diesem Zweck ein kleines Suchformular für Musik gemacht.

Nun hab ich ein kleines Problem....und zwar möchte ich gern die Suchabfrage unterteilen (Artist, Song, Album).
Um das zu machen, wollte ich zusätzlich zum Eingabefeld noch Checkboxen / Radiobuttons dazu machen mit denen man "gezielt" nach Artist, Song oder Album suchen kann.
Leider weiss ich nicht genau wie ich den richtigen Wert an die Abfrage übergeben kann.

Hier mal der Code zum derzeitigen "Script"
PHP-Code:

<?php
  
include("testingdb.php");
?>
<html>

<center>
<form action="testing.php" method="post">
    <input type="text" size="15" name="searchfor">
    <input type="submit" value="ok">
</form>
</center>
<br>

<?php

    $searching 
"SELECT * FROM songlist WHERE album LIKE '$searchfor'";
    
$result mysql_query($searching);
        while(
$row mysql_fetch_object($result))
        {
        echo 
$row->album," - ",$row->artist," - ",$row->title,"<br>";
        }

    
mysql_free_result($result);

?>

</html>

Der Wert der durch die Checkboxen / Radiobuttons übergeben werden müsste, wäre $searching = "SELECT * FROM songlist WHERE album LIKE '$searchfor'"; den ich dann als $variable (wie zB $searchfor) weitergeben kann.
Der Wert muss artist, title oder song lauten, da so die Tabellen heissen.

Folgendes hab ich versucht, aber so scheint es nicht zu funktionieren :/

PHP-Code:

<?php
  
include("testingdb.php");
?>
<html>

<center>
<form action="testing.php" method="post">
    <input type="radio" name="searchfrom" value="artist">Artist
    <input type="radio" name="searchfrom" value="song">Song
    <input type="radio" name="searchfrom" value="album">Album<br>
    <input type="text" size="15" name="searchfor">
    <input type="submit" value="ok">
</form>
</center>
<br>

<?php

    $searching 
"SELECT * FROM songlist WHERE '$searchfrom' LIKE '$searchfor'";
    
$result mysql_query($searching);
        while(
$row mysql_fetch_object($result))
        {
        echo 
$row->album," - ",$row->artist," - ",$row->title,"<br>";
        }

    
mysql_free_result($result);

?>

</html>

Ich hoffe es hat jemand Zeit mir bei dem Problem zu helfen....Danke

Gruss
Hardy

PS:
Wie gesagt ich bin noch blutiger Anfänger und hab mich jetzt erst dazu entschlossen doch ein bisschen was dazu / zu lernen.

KTB 21.07.2006 13:30:39

AW: Hilfe bei Suchformular [Anfänger]
 
Funktioniert dein "derzeitiges" Script denn? Ich bezweifel es fast, da du ohne $_POST[] arbeitest.
Ansonsten würd ich $searchfrom ohne Hochkomatas schreiben. Dann müsste es funktionieren.

Hardy74 21.07.2006 13:42:32

AW: Hilfe bei Suchformular [Anfänger]
 
Hi

Danke für die schnelle Antwort.

Also das obere Script (ohne die Radiobuttons) geht wunderbar, aber halt nur um nach Alben zu suchen.

Ich hab mal die Hochkomata weggemacht was auch fast perfekt funktioniert....nur wenn ich nach Song (title) suchen will kommt ein Fehler.

Hier mal der Link zum Testscript:
[ entfernt ]

Verwendeter Code:
PHP-Code:

<?php
  
include("testingdb.php");
?>
<html>

<center>
<form action="testing.php" method="post">
    <input type="radio" name="searchfrom" value="artist">Artist
    <input type="radio" name="searchfrom" value="title">Title
    <input type="radio" name="searchfrom" value="album">Album<br>
    <input type="text" size="15" name="searchfor">
    <input type="submit" value="ok">
</form>
</center>
<br>

<?php

    $searching 
"SELECT * FROM songlist WHERE $searchfrom LIKE '$searchfor'";
    
$result mysql_query($searching);
        while(
$row mysql_fetch_object($result))
        {
        echo 
"<b>",$row->album,"</b> - ",$row->artist," - ",$row->title,"<br>";
        }

    
mysql_free_result($result);

?>

</html>

...muss ich bei $searchfor auch die Hochkomata wegmachen ?
edit:
Hab ich mal gemacht, aber da bekomm ich ständig 2 Fehlermeldungen

...wäre es besser mit $_POST[] zu arbeiten ? Wenn ja könntest du mir vielleicht mal anhand des Scripts ein Beispiel geben ?

Vielen Dank schonmal.

Gruss
Hardy

PS:
Als Suchwort kann man zB Metallica oder Iron Maiden (Artist) verwenden....die Alben sieht man ja dann auch wenn man mal nach Alben suchen will.

KTB 21.07.2006 13:50:49

AW: Hilfe bei Suchformular [Anfänger]
 
Nein, lasse die anderen drin.
Benutze einfach statt mysql_fetch_object einfach mysql_fetch_array
dementsprechend müsste das echo in der Schleife so lauten:
PHP-Code:

echo "<b>".$row[album]."</b> - ".$row[artist]." - ".$row[title]."<br>"

mysql_free_result brauchst du dann nicht.

Hardy74 21.07.2006 14:05:25

AW: Hilfe bei Suchformular [Anfänger]
 
Okay...hab die Änderungen gemacht.

Dir ist sicher aufgefallen das direkt beim Aufruf der Seite eine Fehlermeldung kommt:

Zitat:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /*****/*****/testing.php on line 21
Woran liegt das und wie kann ich das ganze beheben ?

Codeabschnitt (Zeile 21 = while....):

PHP-Code:

    $searching "SELECT * FROM songlist WHERE $searchfrom LIKE '$searchfor'";
    
$result mysql_query($searching);
    while(
$row mysql_fetch_array($result))
        {
        echo 
"<b>".$row[album]."</b> - ".$row[artist]." - ".$row[title]."<br>";
        } 

Ansonsten sag ich nochmal vielen Dank für die Hilfe...langsam komm ich dem gewünschten Ergebniss näher.

KTB 21.07.2006 14:09:29

AW: Hilfe bei Suchformular [Anfänger]
 
Dann stimt etwas in deinem $searching nicht.
Mach mal bitte direkt dahinter echo $searching;

KTB 21.07.2006 14:13:00

AW: Hilfe bei Suchformular [Anfänger]
 
Ach jetzt sehe ich es. Das liegt daran dass du eine Abfrage starten willst, obwohl noch nichts eingegeben wurde.
Pack um den kompletten (unteren) PHP-Teil eine if-Abzweigung:
PHP-Code:

if (!empty($searchfrom))
{
...



Hardy74 21.07.2006 14:24:16

AW: Hilfe bei Suchformular [Anfänger]
 
Wow...ich hab gestern mit PHP angefangen und mir sehr viele Seiten durchgelesen und eigentlich fast nur Bahnhof verstanden und auch nie gedacht das ich irgendwas hinbekomm das halbwegs funktioniert, doch dank deiner Hilfe hab ich ja nun doch schon was geschafft.

So sieht das ganze jetzt aus:

PHP-Code:

<?php
  
include("testingdb.php");
?>
<html>

<center>
<form action="testing.php" method="post">
    <input type="radio" name="searchfrom" value="artist">Artist
    <input type="radio" name="searchfrom" value="title">Title
    <input type="radio" name="searchfrom" value="album">Album<br>
    <input type="text" size="15" name="searchfor">
    <input type="submit" value="ok">
</form>
</center>
<br>

<?php

     
if (!empty($searchfrom))
    {
    
$searching "SELECT * FROM songlist WHERE $searchfrom LIKE '$searchfor'";
    
$result mysql_query($searching);
    while(
$row mysql_fetch_array($result))
        {
        echo 
"<b>".$row[album]."</b> - ".$row[artist]." - ".$row[title]."<br>";
        }
    }

?>

</html>

Falls du Lust und Zeit hast, könnte ich dir ja mal zeigen welchen Nutzen das ganze noch haben soll...vielleicht können wir ja mal per ICQ od. TS labern...würd gern noch ein bisschen mehr lernen und verstehn...ansonsten vielen Dank für deine Hilfe (ich hoff es nervt nicht wenn ich mich so oft bedanke ^^)

Gruss
Hardy

KTB 21.07.2006 14:28:04

AW: Hilfe bei Suchformular [Anfänger]
 
Gern geschehen. Jeder fängt halt mal an und weiß erstmal nix. Ich hab auch mit so einer Musikverwaltung angefangen. Kannst dir mal auf meiner HP anschauen (Link kriegst per PM).
Mach einfach weiter...learning by doing...und wenn du fragen hast, einfach hier stellen. Sind viele kompetente Leute hier ;)

Hardy74 21.07.2006 14:48:26

AW: Hilfe bei Suchformular [Anfänger]
 
Ah, ich war grad auf deiner Seite und hab die Musikverwaltung mal angesehn *grinz* hat ja gewisse Ähnlichkeit mit dem was ich vor habe.

Also ich hatte nie bezweifelt hier kompetente Hilfe zu bekommen, nur bin ich ja nicht mehr der jüngste und musste oft erleben das man direkt "schroff" angemacht wird wenn man solche simplen Sachen nicht kann...deswegen geh ich erst in letzter Instanz als Anfänger in Foren und frag nach Hilfe.
Meist frag ich erst im engeren Freundeskreis wer helfen kann, doch mit PHP beschäftigt sich zur Zeit niemand :/

Fazit:
Ein Anfang ist gemacht und mit etwas Hilfe werd ich auch bestimmt weiter kommen :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:44:42 Uhr.

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