php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.12.2008, 19:20  
Neuer Benutzer
 
Registriert seit: 27.12.2008
Beiträge: 6
mindenator befindet sich auf einem aufstrebenden Ast
mindenator eine Nachricht über ICQ schicken
Standard PHP variablen Übergabe für MySQL Abfrage

Hallo,

bin noch eher ein Grünschnabel in dem Gebiet Webprogrammierung, daher bitte ich um mich nicht zu steinigen

Für ein Schulprojekt, soll ein Film-ausleih-Shop gestaltet werden.

Also zu meinem Problem:
In der Navigationsleiste der index.php wird über den Punkt "Filme A-Z" eine Seite (abisz.php) in den DIV-Container der index.php geladen. Die abis.php sieht so aus:

Wählen Sie die Filme nach dem Anfangsbuchstaben aus:
A | B | C | ....

Auszug aus abisz.php:
Code:
<a href="index.php?$var=A">A</a><a> | </a>
Auszug as index.php:
Code:
$db=mysql_connect("server","db","");
 if ($db==false) {
   echo "Keine Verbindung möglich!";
   exit;
}
mysql_select_db("db",$db) or exit ("Datenbank kann nicht geöffnet werden");
$sql = "SELECT title FROM filme where title like '$var%' LIMIT 0, 20";
$erg = mysql_query ($sql,$db)
or die ("Fehlermeldung=". mysql_error());
$anz = mysql_num_rows($erg);

echo "<table id=tab>";
echo "<tr><td>Filme</td></tr>";

for ($i=0; $i<$anz;$i=$i+1)
{
  $a=mysql_result($erg, $i, "title");
echo "<tr><td>$a</td></tr>";
}
echo "</table>";
?>
Wenn also der Benutzer auf den Buchstaben A klicken soll, soll der Variable $var der Wert "A" an die index.php übergeben werden. Daraufhin soll die Datenbankverbindung hergestellt werden und die Abfrage mit Einbezug der $var durchgeführt werden
Leider funktioniert das vorhaben nicht so recht. Die Abfrage berücksichtigt nicht den Wert "A".

Ich habe bereits mit echo $var geprüft ob die variable übergeben wird und dort gibt er mir den Wert "A" aus.

Könnte mir jemand einen Denkanstoß geben bzw. mich korrigieren, wenn das nicht der richtige Weg ist?

Danke schonmal im vorraus.

Gruß
mindenator ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.12.2008, 19:33  
Erfahrener Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 157
Hexe befindet sich auf einem aufstrebenden Ast
Standard

Warum so umständlich mit einer for-Schleife und mysql_result auslesen?

while ($row=mysql_fetch_assoc($erg))
echo $row['titel'];

Was wird genau ausgelesen?
Normalerweise werden Variablen aus der URL mit $_GET['varname'] entgegengenommen.
Hexe ist offline  
Alt 27.12.2008, 19:34  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Der an das Script übergebene Wert steht nicht in $var, sondern in $_GET['var'].

Es gibt eine Servereinstellung register_globals=on, bei der du $var sofort zur Verfügung hättest. Viele hoffnungslos veraltete Tutorials oder Bücher lehren dies noch so.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 27.12.2008, 21:15  
Neuer Benutzer
 
Registriert seit: 27.12.2008
Beiträge: 6
mindenator befindet sich auf einem aufstrebenden Ast
mindenator eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Der an das Script übergebene Wert steht nicht in $var, sondern in $_GET['var'].

Es gibt eine Servereinstellung register_globals=on, bei der du $var sofort zur Verfügung hättest. Viele hoffnungslos veraltete Tutorials oder Bücher lehren dies noch so.
Erstmal danke für eure schnellen Antworten.
@Hexe: Das mit der Ausgabe in der FOR Schleife funktioniert zwar Grundsätzlich aber dein Lösungsansatz hört sich weniger umständlich an. Werde ich später testen.

@Wolla: Habe dies in meinem Code geändert, bekomme aber daraufhin eine Fehlermeldung:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\filmforum_Linden\content\index.php on line 196

Habe diese Zeile bearbeitet:
Code:
$sql = "SELECT title FROM filme where title like '$_GET['var']%' LIMIT 0, 20";
mindenator ist offline  
Alt 27.12.2008, 21:33  
Erfahrener Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 157
Hexe befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$sql "SELECT title FROM filme 
where title like '"
.mysql_real_escape_string($_GET['var'])."%' LIMIT 0, 20"
Variablen aus der URL oder Formularen niemals einfach so in SQL-Anweisungen verwenden!
Hexe ist offline  
Alt 27.12.2008, 21:56  
Neuer Benutzer
 
Registriert seit: 27.12.2008
Beiträge: 6
mindenator befindet sich auf einem aufstrebenden Ast
mindenator eine Nachricht über ICQ schicken
Standard

ok werde es mal versuchen.
mindenator ist offline  
Alt 27.12.2008, 22:05  
Neuer Benutzer
 
Registriert seit: 27.12.2008
Beiträge: 6
mindenator befindet sich auf einem aufstrebenden Ast
mindenator eine Nachricht über ICQ schicken
Standard

Die Fehlermeldung ist zwar jetzt weg, aber leider wird weiterhin noch keine Daten ausgegeben.
mindenator ist offline  
Alt 27.12.2008, 22:16  
Erfahrener Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 157
Hexe befindet sich auf einem aufstrebenden Ast
Standard

Hast du dir $sql mal per echo ausgeben lassen?
Was steht in $anz ?
Hexe ist offline  
Alt 28.12.2008, 00:15  
Neuer Benutzer
 
Registriert seit: 27.12.2008
Beiträge: 6
mindenator befindet sich auf einem aufstrebenden Ast
mindenator eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Hexe Beitrag anzeigen
Hast du dir $sql mal per echo ausgeben lassen?
Was steht in $anz ?
$sql = SELECT title FROM filme where title like '%' LIMIT 0, 20
$anz = 20

Also nimmt er scheinbar nicht den Wert aus der $var...
mindenator ist offline  
Alt 28.12.2008, 02:31  
Neuer Benutzer
 
Registriert seit: 27.12.2008
Beiträge: 6
mindenator befindet sich auf einem aufstrebenden Ast
mindenator eine Nachricht über ICQ schicken
Standard

So habe es hinbekommen auch wenn es nicht wirklich einen Sinn ergibt, warum es funktioniert.
Habe in der "abis.php" den Wert folgendermaßen übergeben:

Code:
<a href="index.php?id=A">A</a>
Zuvor hatte ich es mit "$var=A" übergeben. Anscheinend kam er mit Bezeichnung durcheinander.

In meiner "index.php" habe ich dann den Wert aus $_GET['id'] ausgegeben.

Code:
$sql = "SELECT title FROM filme where title like '".mysql_real_escape_string($_GET['id'])."%'  LIMIT 0, 20";
Danke für die bisherige Hilfe.

Gruß
mindenator ist offline  
 


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
MySQL Abfrage als PHP class d3rbastl3r PHP Tipps 2008 2 11.06.2008 15:41
Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt Seb PHP Tipps 2008 2 29.05.2008 11:36
Datum bezogene mysql abfrage ApfeL Datenbanken 5 22.10.2006 16:03
MySQL Abfrage macht Seite langsam Datenbanken 11 19.10.2006 19:38
MySQL Abfrage Von / Bis andrew22 Datenbanken 1 02.10.2006 11:04
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
mysql abfrage mqs PHP Tipps 2006 4 09.04.2006 17:57
Abfrage bei mySQL 4 ApfeL Datenbanken 5 24.03.2006 18:53
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
komplizierte mysql abfrage php_frage PHP Tipps 2007 5 28.12.2005 17:55
Mysql Abfrage Datenbanken 4 27.02.2005 22:26
php variablen in mysql PHP Tipps 2004-2 8 06.12.2004 16:41
MySQL mehrfach abfrage PHP Tipps 2004-2 3 22.11.2004 14:23
Übergabe von Variablen bei einem Formular in eine *.php HTML, Usability und Barrierefreiheit 6 01.07.2004 12:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php variable in mysql abfrage, php mysql abfrage mit variable, php variable an mysql übergeben, php mysql variable übergeben, php variablen an mysql übergeben, http://www.php.de/php-tipps-2008/50120-php-variablen-ssoebergabe-fuer-mysql-abfrage.html, php variable in mysql übergeben, php mysql abfrage variable, php mysql variablen übergeben, php variablen in mysql query, php variablen übergeben mysql, mysql abfrage php variable, php mysql abfrage mit variablen, mysql php variablen übergeben, php variablen in mysql abfrage, variable in mysql abfrage php, mysql abfrage mit php variable, php variable mysql abfrage, php variablen in mysql abfragen, php \variablen in mysql-abfrage\

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:18 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