Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „MySql Problem“

Noltie

Noch nicht viel geschrieben

Hallo zusammen!

Ich habe ein Problem mit der gezielten Abfrage von Daten aus einer Mysql Datenbank.
Mit
PHP:
    $abfrage = "SELECT Vorname, Nachname, Id FROM userprofile WHERE Id < 5";
$ergebnis = mysql_query($abfrage);
spricht man ja bekanntlich nur die Datensätze der definierten Spalten in den Reihen an, in denen die ID kleiner als 5 ist.

Wie muss denn denn der Code heißen wenn ich die Abfrage an einen Get Array anpassen will..also die nötigen Informationen über das URL Parameter übergeben will ?

meiner Theorie nach müsste es ja dann
PHP:
$abfrage = "SELECT Vorname, Nachname, Id FROM userprofile WHERE Id = $_GET['id']";
$ergebnis = mysql_query($abfrage);
heißen.

Dem ist aber nicht so. Der PHP Parser antwortet mit einem Error

MFG Noltie
 

NicoB

Hat es drauf

AW: MySql Problem

Definier mal $queryid = $_GET['id'];
und schreib dann statt der direkten Variable einfach diesen Alias rein. Dann gibts keine Probleme mit Anführungszeichen usw.
 

Noltie

Noch nicht viel geschrieben

AW: MySql Problem

Jetzt bin ich einen Schritt weiter schönen dank schonmal...
Jetzt erhalte ich eine völlig neue Fehlermeldung


Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /data/apache/users/kilu.de/noltie/www/klasse/viewprofile.php on line 44

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /data/apache/users/kilu.de/noltie/www/klasse/viewprofile.php on line 76



PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Profile</title>
</head>
<body>
<?php
    mysql_connect("localhost","noltie@1","Noltie11") or die
    ("Keine Verbindung moeglich");
    mysql_select_db("noltie@1-klasse") or die
    ("Die Datenbank existiert nicht");
      
    if(empty($_GET['id'])) {
  
    $abfrage = "SELECT Vorname, Nachname, Id FROM userprofile ORDER BY Nachname";
    $ergebnis = mysql_query($abfrage);
    
    echo '<table border="1" cellpadding="10">';
    
    while($row = mysql_fetch_object($ergebnis))
    {
    echo '<tr><td><a href="viewprofile.php?id=';
    echo "$row->Id";
    echo '">';
    echo "$row->Vorname";
    echo ' ';
    echo "$row->Nachname";
    echo '</a></td></tr>';
    }
    
    echo '</table>';
    mysql_free_result($ergebnis);
    
    }else{
    
    
    $auswahl = $_GET['id'];
    $abfrage = "SELECT Id, Vorname, Nachname, Email, Geburtsdatum, Hobbies, Geschlecht, ICQ, Skype, Ort, Update, Ip FROM userprofile WHERE Id = $auswahl";
    $ergebnis = mysql_query($abfrage);
    
    echo '<table border="1" cellpadding="10">';
    
    while($row = mysql_fetch_object($ergebnis))
    {
    echo '<tr><td>ID</td><td>';
    echo "$row->Id";
    echo '</td></tr><tr><td>Vorname</td><td>';
    echo "$row->Vorname";
    echo '</td></tr><tr><td>Nachname</td><td>';
    echo "$row->Nachname";
    echo '</td></tr><tr><td>Nickname</td><td>';
    echo "$row->Nickname";
    echo '</td></tr><tr><td>Geschlecht</td><td>';
    echo "$row->Geschlecht";
    echo '</td></tr><tr><td>Geburtsdatum</td><td>';
    echo "$row->Geburtsdatum";
    echo '</td></tr><tr><td>Email</td><td>';
    echo "$row->Email";
    echo '</td></tr><tr><td>ICQ</td><td>';
    echo "$row->ICQ";
    echo '</td></tr><tr><td>Skype</td><td>';
    echo "$row->Skype";
    echo '</td></tr><tr><td>Ort</td><td>';
    echo "$row->Ort";
    echo '</td></tr><tr><td>Hobbies</td><td>';
    echo "$row->Hobbies";
    echo '</td></tr><tr><td>Letztes Update</td><td>';
    echo "$row->Update";
    echo '</td></tr><tr><td>Ip bei letztem Update</td><td>';
    echo "$row->Ip";
    echo '</td></tr>';
    }
    
    echo '</table>';
    mysql_free_result($ergebnis);
    
    
    
    }
?>
</body>
</html>
Hier der komplette Quellcode...

Falls man es nicht erkennt...
Es soll Teil einer Portalsytem sein und zwar kein geringerer als der, der für die Anzeige von Profilen verantwortlich ist.
Wenn die id Get-Variable leer ist soll eine Tabelle mit allen Nutzern ausgegeben werden wobei wenn man auf den jeweiligen Nutzer klickt nun die Variable gefüllt wird und man dann das Profil einer ausgewählten Person mit allen Details zu sehen bekommt.
 

Noltie

Noch nicht viel geschrieben

AW: MySql Problem

Sry kann sein das ich einfach zu blöd dafür bin...

Aber trotzdem besteht die Fehlermeldung weiterhin^^
 

Refus

aka Noisy

AW: MySql Problem

$ergebnis = mysql_query($abfrage);

mach mal
$ergebnis = mysql_query($abfrage) or die(mysql_error());
 

Noltie

Noch nicht viel geschrieben

AW: MySql Problem

Ist der gleiche wie oben nur mit "or die(mysql_error());" angehangen

Also

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Profile</title>
</head>
<body>
<?php
    mysql_connect("localhost","noltie@1","Noltie11") or die
    ("Keine Verbindung moeglich");
    mysql_select_db("noltie@1-klasse") or die
    ("Die Datenbank existiert nicht");
      
    if(empty($_GET['id'])) {
  
    $abfrage = "SELECT Vorname, Nachname, Id FROM userprofile ORDER BY Nachname";
    $ergebnis = mysql_query($abfrage);
    
    echo '<table border="1" cellpadding="10">';
    
    while($row = mysql_fetch_object($ergebnis))
    {
    echo '<tr><td><a href="viewprofile.php?id=';
    echo "$row->Id";
    echo '">';
    echo "$row->Vorname";
    echo ' ';
    echo "$row->Nachname";
    echo '</a></td></tr>';
    }
    
    echo '</table>';
    mysql_free_result($ergebnis);
    
    }else{
    
    
    $auswahl = $_GET['id'];
    $abfrage = "SELECT Id, Vorname, Nachname, Email, Geburtsdatum, Hobbies, Geschlecht, ICQ, Skype, Ort, Update, Ip FROM userprofile WHERE Id = $auswahl";
    $ergebnis = mysql_query($abfrage)or die(mysql_error());
    
    echo '<table border="1" cellpadding="10">';
    
    while($row = mysql_fetch_object($ergebnis))
    {
    echo '<tr><td>ID</td><td>';
    echo "$row->Id";
    echo '</td></tr><tr><td>Vorname</td><td>';
    echo "$row->Vorname";
    echo '</td></tr><tr><td>Nachname</td><td>';
    echo "$row->Nachname";
    echo '</td></tr><tr><td>Nickname</td><td>';
    echo "$row->Nickname";
    echo '</td></tr><tr><td>Geschlecht</td><td>';
    echo "$row->Geschlecht";
    echo '</td></tr><tr><td>Geburtsdatum</td><td>';
    echo "$row->Geburtsdatum";
    echo '</td></tr><tr><td>Email</td><td>';
    echo "$row->Email";
    echo '</td></tr><tr><td>ICQ</td><td>';
    echo "$row->ICQ";
    echo '</td></tr><tr><td>Skype</td><td>';
    echo "$row->Skype";
    echo '</td></tr><tr><td>Ort</td><td>';
    echo "$row->Ort";
    echo '</td></tr><tr><td>Hobbies</td><td>';
    echo "$row->Hobbies";
    echo '</td></tr><tr><td>Letztes Update</td><td>';
    echo "$row->Update";
    echo '</td></tr><tr><td>Ip bei letztem Update</td><td>';
    echo "$row->Ip";
    echo '</td></tr>';
    }
    
    echo '</table>';
    mysql_free_result($ergebnis);
    
    
    
    }
?>
</body>
</html>
 

Noltie

Noch nicht viel geschrieben

AW: MySql Problem

Wieder das gleiche Spielchen

Allerdings solltest du mir bitte einmal erklären warum auf einmal ´ sowie . in die Anweisung sollen(nur interesse halber)

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Profile</title>
</head>
<body>
<?php
    mysql_connect("localhost","noltie@1","Noltie11") or die
    ("Keine Verbindung moeglich");
    mysql_select_db("noltie@1-klasse") or die
    ("Die Datenbank existiert nicht");
      
    if(empty($_GET['id'])) {
  
    $abfrage = "SELECT Vorname, Nachname, Id FROM userprofile ORDER BY Nachname";
    $ergebnis = mysql_query($abfrage);
    
    echo '<table border="1" cellpadding="10">';
    
    while($row = mysql_fetch_object($ergebnis))
    {
    echo '<tr><td><a href="viewprofile.php?id=';
    echo "$row->Id";
    echo '">';
    echo "$row->Vorname";
    echo ' ';
    echo "$row->Nachname";
    echo '</a></td></tr>';
    }
    
    echo '</table>';
    mysql_free_result($ergebnis);
    
    }else{
    
    
    $auswahl = $_GET['id'];
    $abfrage = "SELECT Id, Vorname, Nachname, Email, Geburtsdatum, Hobbies, Geschlecht, ICQ, Skype, Ort, Update, Ip FROM userprofile WHERE Id = ´".$auswahl."´";
    $ergebnis = mysql_query($abfrage)or die(mysql_error());
    
    echo '<table border="1" cellpadding="10">';
    
    while($row = mysql_fetch_object($ergebnis))
    {
    echo '<tr><td>ID</td><td>';
    echo "$row->Id";
    echo '</td></tr><tr><td>Vorname</td><td>';
    echo "$row->Vorname";
    echo '</td></tr><tr><td>Nachname</td><td>';
    echo "$row->Nachname";
    echo '</td></tr><tr><td>Nickname</td><td>';
    echo "$row->Nickname";
    echo '</td></tr><tr><td>Geschlecht</td><td>';
    echo "$row->Geschlecht";
    echo '</td></tr><tr><td>Geburtsdatum</td><td>';
    echo "$row->Geburtsdatum";
    echo '</td></tr><tr><td>Email</td><td>';
    echo "$row->Email";
    echo '</td></tr><tr><td>ICQ</td><td>';
    echo "$row->ICQ";
    echo '</td></tr><tr><td>Skype</td><td>';
    echo "$row->Skype";
    echo '</td></tr><tr><td>Ort</td><td>';
    echo "$row->Ort";
    echo '</td></tr><tr><td>Hobbies</td><td>';
    echo "$row->Hobbies";
    echo '</td></tr><tr><td>Letztes Update</td><td>';
    echo "$row->Update";
    echo '</td></tr><tr><td>Ip bei letztem Update</td><td>';
    echo "$row->Ip";
    echo '</td></tr>';
    }
    
    echo '</table>';
    mysql_free_result($ergebnis);
    
    
    
    }
?>
</body>
</html>
Programm ist aktualisiert unter Profile
 

Refus

aka Noisy

AW: MySql Problem

An und für sich ist das nicht unbedingt notwendig, allerdings zick Mysql da manchmal rum. ".." bindet eben eine Variable ein `` deklariert nur nochmal den Inhalt.

Du kannst die Abfrage übrigends auch verkürzen:
SELECT * FROM `userprofile` WHERE Id = ".$auswahl."
 

Noltie

Noch nicht viel geschrieben

AW: MySql Problem

Wenn man nun anstatt des ´" nur ein " schreibt klappts auch mit Mysql ....Vielen Dank !!!!
 

saila

Moderatorle

AW: MySql Problem

Hi,

wieder eine Datenbank mehr, welche man hops gehen lassen könnte, weil man schlechten Code einfliessen lassen kann.

Ich denke, wenn man das Netz bzw. Foren durchstöbert und SQL-Fragen/Threads herausnimmt, in welchen GET-Vars übergeben werden, dann wäre zu 80% wohl das Private Homepage-Netz lahm :lol:

Da wird noch nicht mal auf int geprüft. was 0 wäre, sofern kein int übergeben würde!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.155
Beiträge
2.581.856
Mitglieder
67.222
Neuestes Mitglied
Gregor
Oben