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 ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.01.2005, 10:39:05
shinbo-san shinbo-san ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 15
Suchergebnis durch Auswahl von Dropdowon1 und Dropdowon2 anzeigen

Ich, Neuling, habe entweder nach den Falschen Kriterien gesucht oder nix gescheites zu meinem Problem gefunden.

Ich bin schon seit Tagen dran herauszufinden wie ich eine Suchfunktion mit 2 oder mehr dropdown Feldern dessen Daten aus einer SQL DB kommen zu realisieren. Dabei sollte er mir nur Daten suchen die aus Dropdowon1 und Dropdowon2 ausgewählt, mit Go Button die anfrage sendet und auf der Seite anzeigen soll.

Ich habe auch mal daran gedacht durch die Auswahl der Dropdown Felder dynamisch den SQL String zu generieren aber da mache ich wohl was falsch.

Eine einfache Suchfunktion mit einem Input Feld und Go Button bekomme ich hin.
Kann mir jemand einen Tipp oder ein Tutorial gegeben währe super.
Mit Zitat antworten
  #2  
Alt 25.01.2005, 10:42:16
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Versuch's mal mit mehr Infos. Zeig z.B. Code.

Was hast Du denn für Suchbegriffe genutzt??
--> http://www.google.de/search?q=mysql+...+abfrage+-html
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 25.01.2005, 10:50:41
shinbo-san shinbo-san ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 15
Das ist der Code eines Tutorial den ich umgebaut habe:

PHP-Code:
<?php require_once('Connections/RecordstorePHP.php'); ?>
<?php
mysql_select_db
($database_RecordstorePHP$RecordstorePHP);



$query_Search "SELECT * FROM album, artist WHERE album.AlbumName LIKE '%$colname_Search%' AND artist.ArtistStyle LIKE '%$colname_Search%'";
$Search mysql_query($query_Search$RecordstorePHP) or die(mysql_error());
$row_Search mysql_fetch_assoc($Search);
$totalRows_Search mysql_num_rows($Search);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body>
<form action="catalog.php?search2=true" method="get" name="form1" id="form1">
  <select name="searchcatalog" id="searchcatalog">
    <option value="">Style</option>
    <?php
do {  
?>
    <option value="<?php echo $row_Search['ArtistStyle']?>"><?php echo $row_Search['ArtistStyle']?></option>
    <?php
} while ($row_Search mysql_fetch_assoc($Search));
  
$rows mysql_num_rows($Search);
  if(
$rows 0) {
      
mysql_data_seek($Search0);
      
$row_Search mysql_fetch_assoc($Search);
  }
?>
  </select>  
  <select name="searchcatalog" id="searchcatalog">
    <option value="">Album Name</option>
    <?php
do {  
?>
    <option value="<?php echo $row_Search['AlbumName']?>"><?php echo $row_Search['AlbumName']?></option>
    <?php
} while ($row_Search mysql_fetch_assoc($Search));
  
$rows mysql_num_rows($Search);
  if(
$rows 0) {
      
mysql_data_seek($Search0);
      
$row_Search mysql_fetch_assoc($Search);
  }
  
$colname_Search "1";
if (isset(
$HTTP_GET_VARS['searchcatalog'])) {
$colname_Search = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['searchcatalog']
addslashes($HTTP_GET_VARS['searchcatalog']);
}
?>
  </select>
  <input type="submit" name="Submit" value="Search">
</form>


</body>
</html>
<?php
mysql_free_result
($Search);
?>
Mit Zitat antworten
  #4  
Alt 25.01.2005, 11:03:33
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Du hast da ein wenig die Reihenfolge verhauen. Das "if (isset($HTTP_GET_VARS['searchcatalog'])) muss an den Anfang der Datei. Am Ende ist es sinnlos.

$query_search wird auch beim ersten Aufruf der Seite gesetzt, aber da gibt es $colname_Search und $colname_Search noch gar nicht. Mit in das if (isset()) packen.
Zudem glaube ich nicht ganz an denn Sinn der Abfrage. Warum muss das Gesuchte im Namen des Albums UND im Bandnamen auftauchen??

Ändere das erstmal funktionstüchtig ab und dann schauen wir weiter.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 25.01.2005, 12:17:13
shinbo-san shinbo-san ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 15
Habe es mahl so versucht aber das geht nicht wirklich

Mein stand jetzt:
PHP-Code:
<?php require_once('Connections/RecordstorePHP.php'); ?>
<?php
mysql_select_db
($database_RecordstorePHP$RecordstorePHP);
$query_Search "SELECT * FROM album, artist WHERE album.AlbumName LIKE '%$colname_Search%' AND artist.ArtistStyle LIKE '%$colname_Search%'";
$Search mysql_query($query_Search$RecordstorePHP) or die(mysql_error());
$row_Search mysql_fetch_assoc($Search);
$totalRows_Search mysql_num_rows($Search);


$colname_Search "1";
if (isset(
$HTTP_GET_VARS['searchcatalog'])) {
$colname_Search = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['searchcatalog']
addslashes($HTTP_GET_VARS['searchcatalog']);
}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
….. usw usw.
so sucht er mir aber entweder wert aus dropdown1 oder aus dropdown2

setze ich den
PHP-Code:
$query_Search "SELECT * FROM album, artist WHERE album.AlbumName LIKE '%$colname_Search%' AND artist.ArtistStyle LIKE '%$colname_Search%'"
in die if Schleife dann bekomme ich die Ausgabe: "qery is Empty"

setzte ich den Kompletten block also:
PHP-Code:
mysql_select_db($database_RecordstorePHP$RecordstorePHP);
$query_Search "SELECT * FROM album, artist WHERE album.AlbumName LIKE '%$colname_Search%' AND artist.ArtistStyle LIKE '%$colname_Search%'";
$Search mysql_query($query_Search$RecordstorePHP) or die(mysql_error());
$row_Search mysql_fetch_assoc($Search);
$totalRows_Search mysql_num_rows($Search); 
in die Schleife sind meine Pulldown Felder leer.

Ich weiß das die Abfrage die dort gemacht wird nicht sehr sinnvoll ist. War nur zu faul es mit sinnvollem Inhalt zu füllen. Es geht mir jetzt nur darum wenn ich z.B. BandXYZ auf Syle Rock Prüfe und es wahr ist, soll einfach eine Ausgabe erfolgen.
Mit Zitat antworten
  #6  
Alt 25.01.2005, 15:05:18
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Also ich habe mir mal den zu erst geposteten Code angeschaut und 'angepasst'.

Was ich nicht verstehe: die Abfrage wird mit Werten aus einem Formular gefüllt, welches aus der gleichen Abfrage gefüllt wird. Das ist so ein Henne-Ei-Problem.

Und warum haben die beiden <select>-Felder den gleichen Namen? Nach dem Abschicken wird bei Dir nur der Wert des letzten Feldes genommen. Nimm also unterschiedliche Namen.
Auch ist es nicht gut, wenn Du bei value="" den Wert des Feldes aus der Tabelle einträgst. Besser ist da die ID des Wertes (die es ja hoffentlich gibt)!

Haben die Tabellen album und artist voneinander abhängige Felder (Stichwort Fremdschlüssel)?

Du hast hier also einiges verwurschtelt.

Mal ein Versuch von mir:
PHP-Code:
<?php
//Meldungen von PHP anzeigen
error_reporting(E_ALL);

require_once(
'Connections/RecordstorePHP.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body>

<?php
// DB waehlen
mysql_select_db($database_RecordstorePHP$RecordstorePHP);

// Query anfangen
$query_Search 'SELECT * FROM album, artist WHERE ';

// Wenn style gewaehlt, dann in Array $temp packen
if (!empty($_GET['style'])) {
    
$style = (get_magic_quotes_gpc()) ? $_GET['style'] : addslashes($_GET['style']);
    
$temp[]="album.AlbumName LIKE '%$style%';";
}
// Wenn albumname gewaehlt, dann in Array $temp packen
if (!empty($_GET['albumname'])) {
    
$style = (get_magic_quotes_gpc()) ? $_GET['albumname'] : addslashes($_GET['albumname']);
    
$temp[]="album.AlbumName LIKE '%$albumname%'";
}

// Wenn was im Array ist, dann...
if (isset($temp)) {
    
// Array zusammenfuegen und ' AND ' dazwischenpacken
    
$Search mysql_query($query_Search.join(' AND '$temp), $RecordstorePHP) or die(mysql_error());
    
$rows mysql_num_rows($Search);

    
// Ausgabe der gefundenen Datensaetze    
    
if ($rows 0) {
        while (
$row_Search mysql_fetch_assoc($Search)) {
            echo 
$row_Search['irgendsoeinfeldhalt'];
        }
    }
}
?>

<form action="catalog.php?search2=true" method="get">
  <select name="style">
    <option value="">Style</option>
<?php
// Alle Styles auslesen und ausgeben
$Search mysql_query('SELECT ArtistStyle FROM album ORDER BY ArtistStyle ASC'$RecordstorePHP) or die(mysql_error());
while (
$row_Search mysql_fetch_assoc($Search)) {
    echo 
"    <option value='{$row_Search['ArtistStyle']}'>{$row_Search['ArtistStyle']}</option>n";
}
?>
  </select>

  <select name="albumname">
    <option value="">Album Name</option>
<?php
// Alle Albennamen auslesen und ausgeben
$Search mysql_query('SELECT AlbumName FROM artist ORDER BY AlbumName ASC'$RecordstorePHP) or die(mysql_error());
while (
$row_Search mysql_fetch_assoc($Search)) {
    echo 
"    <option value='{$row_Search['AlbumName']}'>{$row_Search['AlbumName']}</option>n";
}
?>
  </select>
  <input type="submit" name="Submit" value="Search">
</form>

</body>
</html>
__________________
sic!
--> http://dbCF.de/

Geändert von ­c­4­ (25.01.2005 um 15:08:11 Uhr)
Mit Zitat antworten
  #7  
Alt 25.01.2005, 19:18:54
shinbo-san shinbo-san ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 15
Habe was gebraucht um den Skript zum laufen zu bringen. Dabei habe ich es auch einwenig verändert und erweitert. Was aber schon bei der unveränderten Version, nachdem ich die einträge geändert hatte, nicht passierte, war eine Ausgabe. Genauso wie bei dem jetzigem Code.

Ich habe in der Tabelle "album" eine "AlbumID" und bei der Tabelle "artist" eine "ArtistID" Wenn ich diese aber in den Value bereich der jeweiligen dropdown setzte sieht es aber dann so aus: "test6.php?style=& albumname=&Submit=Search"
Lasse ich es wie gehabt habe ich dann den Inhalt stehen.

Ich habe es mal versucht den Query_Search so zu bauen:
PHP-Code:
 $query_Search 'SELECT * FROM album, artist WHERE album.AlbumName LIKE '%$style%' AND album.AlbumName LIKE '%$albumname%' AND album.AlbumID = artist.ArtistID '
Ich bekomme da keine Fehlermeldung somit hoffe ich dass es richtig ist


Wenn ich da auch noch ne Ausgabe die auch noch richtig ist wäre es eigentlich perfekt.

PHP-Code:
<?php
//Meldungen von PHP anzeigen
error_reporting(E_ALL);
require_once(
'Connections/RecordstorePHP.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body>

<?php
// DB waehlen
mysql_select_db($database_RecordstorePHP$RecordstorePHP);

// Query anfangen
$query_Search 'SELECT * FROM album, artist WHERE ';

// Wenn style gewaehlt, dann in Array $temp packen
if (!empty($_GET['style'])) {
    
$style = (get_magic_quotes_gpc()) ? $_GET['style'] : addslashes($_GET['style']);
    
$temp[]="album.AlbumName LIKE '%$style%'";
}
// Wenn albumname gewaehlt, dann in Array $temp packen
if (!empty($_GET['albumname'])) {
    
$style = (get_magic_quotes_gpc()) ? $_GET['albumname'] : addslashes($_GET['albumname']);
    
$temp[]="album.AlbumName LIKE '%$albumname%' AND album.AlbumID = artist.ArtistID";
}


// Wenn was im Array ist, dann...
/*
if (isset($temp)) {
    // Array zusammenfuegen und ' AND ' dazwischenpacken
    $Search = mysql_query($query_Search.join(' AND ', $temp), $RecordstorePHP) or die(mysql_error());
    $row_Search = mysql_fetch_assoc($Search);
    $totalRows_Search = mysql_num_rows($Search); 
    }
    */
?>

<form action="test6.php?search=true" method="get">
  <select name="style">
    <option value="">Style</option>
<?php
// Alle Styles auslesen und ausgeben
$Search mysql_query('SELECT ArtistStyle FROM artist WHERE artist.ArtistID ORDER BY ArtistStyle ASC'$RecordstorePHP) or die(mysql_error());
while (
$row_Search mysql_fetch_assoc($Search)) {
   echo 
"<option value='{$row_Search['ArtistStyle']}'>{$row_Search['ArtistStyle']}</option>n";
}
 
?>
  </select>

  <select name="albumname">
    <option value="">Album Name</option>
<?php
// Alle Albennamen auslesen und ausgeben
$Search mysql_query('SELECT AlbumName FROM album WHERE album.AlbumID ORDER BY AlbumName ASC'$RecordstorePHP) or die(mysql_error());
while (
$row_Search mysql_fetch_assoc($Search)) {
    echo 
"<option value='{$row_Search['AlbumName']}'>{$row_Search['AlbumName']}</option>n";
}
?>
  </select>
  <input type="submit" name="Submit" value="Search">
</form>


<?php if (isset($temp)) { 

$Search mysql_query($query_Search.join(' AND '$temp), $RecordstorePHP) or die(mysql_error());
    
$row_Search mysql_fetch_assoc($Search);
    
$totalRows_Search mysql_num_rows($Search); 



?>
            <?php if ($totalRows_Search == 0) { ?>
            No albums match your search. Try looking for something else. 
        <?php } else { ?>
            <table width="100%" border="0" cellpadding="2">
                <tr> 
                  <td>&nbsp;</td>
                  <td><strong>Album</strong></td>
                  <td><strong>Artist</strong></td>
                  <td><strong>Style</strong></td>
                </tr>
                <?php do { ?>
                  <tr> 
                  <td><img src="<?php echo $row_Search['AlbumCoverThumbnailURL']; ?>"></td>
                  <td><a href="albumdetail.php?AlbumID=<?php echo $row_Search['AlbumID']; ?>">
                  <?php echo $row_Search['AlbumName']; ?></a></td>
                  <td><?php echo $row_Search['ArtistGroupName']; ?></td>
                  <td><?php echo $row_Search['ArtistStyle']; ?></td>
                </tr>
                <?php } while ($row_Search mysql_fetch_assoc($Search)); ?>
            </table>
            <?php ?>
<?php 
?>    

</body>
</html>
Mit Zitat antworten
  #8  
Alt 26.01.2005, 10:14:22
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
So wie der Code dort steht gibt er nichts aus? Nicht einmal Fehlermeldungen (auch im Quelltext im Browser nachschauen!)?

Lass Dir mal an mehreren Stellen alle Variablen ausgeben und vergleiche, ob die Ausgabe den Erwartungen entspricht.

Ist totalRows_Search am Ende auch größer 0?
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 26.01.2005, 10:38:18
shinbo-san shinbo-san ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 15
"totalRows_Search" ist gleich 0 genauso wie "rows_Search". Keine Ahnung wieso. Keine Fehlermeldung.

Auch wenn die Auswahl so getroffen wurde das da eigentlich ein Eintrag gefunden werden müsste. Habe ich eigendlich die beiden Tabellen richtig miteinander verknüpft? Ev. findet er deswegen nichts oder hänge ich in der
PHP-Code:
 if ($totalRows_Search == 0
fesst.

Mit meiner eingebauten If Schleife erzählt er mir bei jeder Auswahl: "No albums match your search. Try looking for something else."
Mit Zitat antworten
  #10  
Alt 26.01.2005, 10:59:14
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Es gibt keine if-Schleifen!!

Wenn Dein Query nix findet, dann wird das schon so stimmen.

Du hast doch sicher ein phpMyAdmin zur Verfügung stehen, richtig? Bastel Dir dort mal in aller Ruhe einen Query mit Beispielwerten zusammen, der am Ende anzeigt, was Du erwartet hast.
Dann machst Du mit Deinem Skript weiter.

Hatte Dich mal was gefragt: "Haben die Tabellen album und artist voneinander abhängige Felder (Stichwort Fremdschlüssel)?" Wie schaut's damit aus?
__________________
sic!
--> http://dbCF.de/
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


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


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


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