gegevens tonen

Status
Niet open voor verdere reacties.

jeel2008

Gebruiker
Lid geworden
30 okt 2008
Berichten
839
hallo, ik ben net in mysql en php gedoken.
heb ik joomla een pagina gemaakt met een formulier. nu kan ik zelf, of de bezoeker, gegevens invullen. dat ging allemaal oke.

maar nu wil ik gegevens tonen.
ik heb een php bestand dat heet gegevenstonen.php
met daarin een query:
Code:
<?php
$username="mijncds";
$password="mijnpasword";
$database="cds";
$band=$_POST['band'];
$titel=$_POST['titel'];
$jaar=$_POST['jaar'];
$platenmaatschappij=$_POST['platenmaatschappij'];
$genre=$_POST['genre'];
$info=$_POST['info'];

mysql_connect('localhost','mijncds','mijnpasword');
mysql_select_db(cds) or die ("Unable to select database");
mysql_query("select from cds (band, titel)
VALUES ('$band','$titel')");
mysql_close();
?>

en in joomla een artikel met daarin een zoekopdracht.
code:
Code:
gegevens uit de database tonen  database info  <form action="gegevenstonen.php" method="post"> Value1: <input name="band" type="text" /><br /> <input type="Submit" /> </form>

je kunt hiermee de naam van een gevraagde muziekband zoeken, + titel, in een database.
eigenlijk gaat alles goed maar als gegevenstonen.php in beeld komt verschijnt er niets. behalve dan de tekst die ik in de pagina heb staan, zoiets als 'hier uw gegevens: '
de vraag is dan ook: wat voor opdracht geef ik om de resultaten daadwerkelijk in beeld te krijgen?
is dat een echo opdracht? en zo ja, wat is de phpcode dan? en ook zo niet, wat is dan de juist php code om de gevraagde data weer te geven?
 
Laatst bewerkt:
Je query klopt niet!

Het moet zijn
[SQL]
SELECT band, titel FROM (tabel naam) WHERE band='".$band."' AND titel='".$titel."'[/SQL]
dan zou je query moeten werken.
Maar aangezien jij ze ook wil zien
is dit het hele geval:
PHP:
mysql_connect(localhost,$username,$password);
mysql_select_db($database) or die ("Unable to select database");
$quey=mysql_query("SELECT band, titel 
FROM (tabel naam) 
WHERE band='".$band."' AND titel='".$titel."'") or die(mysql_error());
$result= mysql_fetch_assoc($query);
$rows= mysql_num_rows($query);

do{
echo $result['band'];
echo $result['titel'];
} while ($result = mysql_fetch_assoc($query));
 
query

hallo terroraapje, bedankt voor je antwoord. toch krijg ik nog een foutmelding maar ik heb er wat literatuur op nageslagen en het kan best zijn dat het een syntaxfout is.
in een boek zag ik dat bepaalde dingen omgeven waren met aanhalingstekens en bij jou niet. het zijn precies díe zaken waar rookies als ik over struikelen.
bijvoorbeeld:
mysql_connect("localhost", "username", "password") or die(mysql_error());
is niet
mysql_connect(localhost,$username,$password);

zie de bijlagen voor
1. de code
2. de uitkomst

wat gaat hier fout?
 

Bijlagen

  • query.jpg
    query.jpg
    29,5 KB · Weergaven: 28
  • query2.jpg
    query2.jpg
    58,9 KB · Weergaven: 28
Zet je hele code is neer.
Wat er staat alleen dan jij geen toegang hebt tot de database.
misschien verkeerde username of wachtwoord bij de varieble neer gezet?
 
Laatst bewerkt:
hele code

query1.jpg was de hele code, of bedoelde je dat niet?

HTML:
<!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=utf-8" />
<title>Naamloos document</title>
</head>

<body>


uw resultaten zijn: <br />
<?php

mysql_connect(localhost,$username,$pasword);
mysql_select_db($cds) or die ("Unable to select database");
$quey=mysql_query("SELECT band, titel 
FROM band
WHERE band='".$band."' AND titel='".$titel."'") or die(mysql_error());
$result= mysql_fetch_assoc($query);
$rows= mysql_num_rows($query);
 
do{
echo $result['band'];
echo $result['titel'];
} while ($result = mysql_fetch_assoc($query));


?>

</body>
</html>
 
Probeer dit eens
vul even boven in je usernamen,wachtwoord en database in!
Code:
<?php
$username='';//gebruikersnaam database(mijncds)
$password='';//wachtwoord database(mijnpasword)
$database='';//De database die je gaat gebruiken(cds)
if(isset($_POST['band']))//kijkt of POST band bestaat zoja
{
	$band=$_POST['band'];// dan wordt $band gevuld ermee
}
else//zo niet
{
	$band='';// dan wordt hij met niks gevuld
}
if(isset($_POST['titel']))//kijkt of POST titel bestaat zoja
{
	$titel=$_POST['titel'];//dan word $titel er mee gevuld
}
else//zo niet
{
	$titel=''; // wordt hij met niks gevuld
}

mysql_connect(localhost,$username,$pasword);//connectie naar je database
mysql_select_db($database) or die ("Unable to select database");//selecteer database
$quey=mysql_query("SELECT band, titel FROM band WHERE band='".$band."' AND titel='".$titel."'") or die(mysql_error());//je query voor het zoeken van de juiste record
$result= mysql_fetch_assoc($query);
$rows= mysql_num_rows($query);

?>

<!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=utf-8" />
<title>Naamloos document</title>
</head>
 
<body>
 <form name="titelband" method="post">
 Titel<input type="text" name="titel" />
 <br />
 Band<input type="text" name="band" />
 <br />
 <input type="submit" value="Zoeken" />
 </form>
 
uw resultaten zijn: <br />
<?php //alle records worden hier laten zien.
do{
echo $result['band'];
echo $result['titel'];
} while ($result = mysql_fetch_assoc($query));
?>
 
</body>
</html>

mocht je dezelfde foutmeldinge als net krijgen dan moet je even kijken of je gebruiker enzo wel bestaat in je database en ook of je database wel local heb draaine
 
Laatst bewerkt:
query

ja, het begint te werken.
zie image

ik heb een test gedaan als ik bijvoorbeeld zappa als band en apostrophe als titel invoer dan krijg ik precies dat. want daar heb ik natuurlijk om gevraagd.

dan zal ik steeds maar 1 antwoord krijgen, want het zou toevallig zijn als er NOG een band met dezelfde naam en dezelfde titel zou bestaan.

wat ik wil ik dat mensen bijvoorbeeld een bandnaam invoeren en dat dan de gegevens verschijnen. dus bijvoorbeeld alleen de titel, of wat ik ook opgeef in de stukje php code, bijvoorbeeld bijbehorende platenmaatschappij en genre.

snap je wat ik bedoel?
 

Bijlagen

  • query3.jpg
    query3.jpg
    27,9 KB · Weergaven: 29
  • query4.jpg
    query4.jpg
    51,5 KB · Weergaven: 29
  • query5.jpg
    query5.jpg
    37,6 KB · Weergaven: 26
dan zou jeje query moeten aanpassen en deze ook weer laten zien in je html.
je hebt alles al het eninge wat je moet doen is een beetje spelen me de code!

als er nog een band is met de zelfde naam of titel dan komt die ook in beeld!
dat komt door die do en while
 
bedankt

ok bedankt

ps ik heb nu een hele simpele gemaakt
maar toch krijg ik geen result in beeld
maar hier lijkt me toch helemaal niets mis mee

Code:
<?php

$connection = mysql_connect("localhost","username","password") or die ("Unable to select database");
$database = "cds";
$db = mysql_select_db($database,$connection) or die ("Coudn't select database");
$result = mysql_query("SELECT * FROM band") or die(mysql_error());

?>

en ook dit werkt niet trouwens:
Code:
<?php

$connection = mysql_connect("localhost","username","password") or die ("Unable to select database");
$database = "cds";
$db = mysql_select_db($database) or die ("Coudn't select database");
$query = "SELECT * FROM band";
$result = mysql_query($query) or die(mysql_error());

?>

wat echter wel werkt is deze:
Code:
// Connect to the database server
mysql_connect("localhost", "username", "wachtwoord") or die(mysql_error());

// Open to the database
mysql_select_db("cds") or die(mysql_error());

// Select all records from the "Individual" table
$result = mysql_query("SELECT genre FROM band")
or die(mysql_error());

// Loop thru each record (using the PHP $row variable),
// then display the first name and last name of each record.
while($row = mysql_fetch_array($result)){
	echo $row['band']. " - ". $row['genre'];
	echo "<br />";
}
?>

maar vraag me toch af waarom de eerste twee niet werken
 
Laatst bewerkt:
Omdat je bij de eerste 2 niks laat echo'en
dus hij laat ook niks zien!

en klopt het dat hij bij de laatste geen band laat zien?
zoja
[SQL]SELECT band, genre[/SQL]
 
Laatst bewerkt:
werkend

ja, volgens mij liet ie niets zien.
en met dat echo-en zat ik inderdaad even niet op te letten.
maar ik heb m nu werkend zoals ik wil.


Code:
<?php
// Connect to the database server
mysql_connect("localhost", "jellecds", "slimal") or die(mysql_error());

// Open to the database
mysql_select_db("cds") or die(mysql_error());

// Select all records from the "Individual" table
$result = mysql_query("SELECT band,titel FROM band")
or die(mysql_error());

// Loop thru each record (using the PHP $row variable),
// then display the first name and last name of each record.
while($row = mysql_fetch_array($result)){
	echo $row['band']. " - ". $row['titel'];
	echo "<br />";
}
?>


het enige dat ik nu nog moet doen is de resultaten een beetje mooi tonen, maar dat kan ik embedden in een pagina en hoe je dat in een tabel zet zal ook wel uit te vissen zijn.

in ieder geval bedankt voor de hulp en de uitleg!
 
HTML:
<?php
// Connect to the database server
mysql_connect("localhost", "jellecds", "slimal") or die(mysql_error());

// Open to the database
mysql_select_db("cds") or die(mysql_error());

// Select all records from the "Individual" table
$result = mysql_query("SELECT band,titel FROM band")
or die(mysql_error());

}
?>
<html>
<body>
<table>
<tr>
<td>Band</td>
<td>Genre</td>
</tr>
<?php
// Loop thru each record (using the PHP $row variable),
// then display the first name and last name of each record.
while($row = mysql_fetch_array($result)){
              echo "<tr>";
	echo "<td>".$row['band']. "</td><td>". $row['titel']."</td>";
	echo "</tr>";
?>
<table>
</body>
</html>
 
op regel 12 heb ik dat haakje weggehaald.
daarna plak ik m in een bestand wat ik gebruik maar dan krijg ik wel een parse error:
Parse error: syntax error, unexpected $end in /home/vhosts/mijnsite.nl/httpdocs/joomla/cdstonen2werkend.php on line 31
vreemd, want alles moet toch weer worden afgesloten met </html>
 
image

ja, als je dit bedoelt tenminste: zie image
 

Bijlagen

  • code.jpg
    code.jpg
    37,3 KB · Weergaven: 33
nee
je moet achter
echo "</tr>";
nog een } plaatsen
die ben ik even vergeten namelijk
 
http://www.jeelsites.nl/joomla/gegevens2

dit is wat ik zocht:

nu heb ik een variabele 'trefwoord' ingevoegd.
nu krijg ik de resultaten die ik wil. bezoekers kunnen nu een trefwoord invullen en krijgen dan bv alle cds van zappa te zien.

nu heb ik in het artikel dit als code
Code:
gegevens uit de database tonen  database info  <form action="cdstonen4werkend.php" method="post"> trefwoord invullen: <input name="trefwoord" type="text" /><br /> <input type="Submit" /> </form>

en in het phpbestand waarnaar het verwijst heb ik de vette regel aangepast.
want ik wilde dus een relatie leggen tussen wat de bezoeker invult en hetgeen getoond wordt.

Code:
<?php
// Connect to the database server
mysql_connect("localhost", "jellecds", "slimal") or die(mysql_error());
 
// Open to the database
mysql_select_db("cds") or die(mysql_error());
 
// Select all records from the "Individual" table
[B]$result = mysql_query("SELECT band,titel FROM band WHERE band like '$trefwoord'")[/B]
or die(mysql_error());
 

?>

<html>
<body>
<table>
<tr>
<td>Band</td>
<td>Genre</td>
</tr>
<?php
// Loop thru each record (using the PHP $row variable),
// then display the first name and last name of each record.
while($row = mysql_fetch_array($result)){
              echo "<tr>"; 
    echo "<td>".$row['band']. "</td><td>". $row['titel']."</td>";
    echo "</tr>"; }
?>
</table>
</body>
</html>
 
Laatst bewerkt:
weet iemand toevallig ook wat de code is voor het tonen van een image, een BLOB?
ik heb een kolom in mijn tabel die heet 'image'.
de bedoeling is dat bijvoorbeeld iemand zoekt op een naam van een band, deze bijvoorbeeld 5 resultaten oplevert. dan zie je naam vd band en naam van de cd. voor meer info kun je dan verderklikken en dan verschijnt er behalve de info ook een fotootje van de bijbehorende cd.

maar als je in PHPmyadmin bent kun je een pad maken naar een image op je pc.
ik zou liever alles op de server zetten en daar naartoe een pad maken.
hoe pak je zoiets aan, gezien het feit dat dit m'n code is, zie onder, wat moet ik hier aan toevoegen?

Code:
<?php
// Connect to the database server
mysql_connect("localhost", "jeel2008", "wachtwoord) or die(mysql_error());
 
// Open to the database
mysql_select_db("cds") or die(mysql_error());
 
// Select all records from the "Individual" table
$result = mysql_query("SELECT band,titel FROM band WHERE band like '$trefwoord'")
or die(mysql_error());
 

?>

<html>
<body>
<table>
<tr>
<td>Band</td>
<td>Genre</td>
</tr>
<?php
// Loop thru each record (using the PHP $row variable),
// then display the first name and last name of each record.
while($row = mysql_fetch_array($result)){
              echo "<tr>"; 
    echo "<td>".$row['band']. "</td><td>". $row['titel']."</td>";
    echo "</tr>"; }
	
?>


</table>
</body>
</html>

in eerste instantie heb ik het zo gedaan:
regel 28: echo "<td>".$row['band']. "</td><td>". $row['titel']."</td><td>" .$row['image']".</td>";

dit werkt op zich, alleen zie ik het plaatje niet.
tabel.jpg

heb de image voor het gemak even in dezelfde map gezet als het .php bestand. maar ziet het niet terug. het pad zal wel niet goed zijn, maar waar kan ik dat handmatig corrigeren?

ik heb het nu zo gedaan, het pad heb ik in een Varchar gezet.
maar wat is het pad? ../joomla/images/stories/cds/naamimage.jpg werkt in ieder geval niet.tabel2.jpg
 

Bijlagen

  • blob.jpg
    blob.jpg
    86,6 KB · Weergaven: 25
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan