text uit db
ik wil text uit mijn database halen om te laten weergeven op mn website. De text is gewoon stukjes zoals dit. Die stukjes worden met een paar tegelijk weergegeven op één pagina. hoe kan ik met een query er voor zorgen dat die alles er uit haalt om het daarna per kolom te laten weegeven? ik krijg wel alles uit de database, maar de enige manier om het te laten weergeven, is om voor elk vak een nieuwe query te maken...dat moet toch makkelijker kunnen? ik heb maar 2 kolommen in m'n tabel: varname en text. ik kan dus op varname selecteren. iemand een idee hoe dit makkelijk kan zonder een vracht queries te hebben?
of
Ja dqt snap ik, maar hoe kan ik buiten de query aangeven uit welk veld ik het resultaat wil hebben?
Thuron thuron op 25/10/2010 08:07:12:
Hoe is het herkenbaar, hoe herken jij wat je waar wilt hebben ?Ja dqt snap ik, maar hoe kan ik buiten de query aangeven uit welk veld ik het resultaat wil hebben?
Je kan bijvoorbeeld in de query al een sorteervolgorde meegeven (ORDER BY) zodat je weet wat waar staat en dat verwerk je dan in die volgorde.
Toevoeging op 25/10/2010 19:53:11:
Ik heb even gekeken of het met een array kan, maar dat is ook gevaarlijk, omdat ik dan vast zit aan de volgorde van de database. Er moet toch een manier zijn om simpel rijen te selecteren op een andere variabele in dezelfde rij ipv op kolomnaam?...
iemand?
Voor mij blijft de vraag onduidelijk.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
# De query
$qry = "SELECT
veld1,
veld2,
veld3
FROM
tabel
WHERE
veld1 = '".mysql_real_escape_string( $_GET['id'] )."'";
# Query uitvoeren
if($sql = mysql_query( $qry ) )
{
# Als er resultaten zijn
if( mysql_num_rows( $sql ) > 0 )
{
# Data loopen
while( $rec = mysql_fetch_assoc( $sql ) )
{
# Data weergeven
echo $rec['veld1'];
echo $rec['veld2'];
echo $rec['veld3'];
}
}
else
{
# Geen resultaten
echo 'Er zijn geen resultaten gevonden.';
}
}
else
{
# Fout in query
echo 'Er is een fout in de query opgetreden.';
echo mysql_error();
}
?>
# De query
$qry = "SELECT
veld1,
veld2,
veld3
FROM
tabel
WHERE
veld1 = '".mysql_real_escape_string( $_GET['id'] )."'";
# Query uitvoeren
if($sql = mysql_query( $qry ) )
{
# Als er resultaten zijn
if( mysql_num_rows( $sql ) > 0 )
{
# Data loopen
while( $rec = mysql_fetch_assoc( $sql ) )
{
# Data weergeven
echo $rec['veld1'];
echo $rec['veld2'];
echo $rec['veld3'];
}
}
else
{
# Geen resultaten
echo 'Er zijn geen resultaten gevonden.';
}
}
else
{
# Fout in query
echo 'Er is een fout in de query opgetreden.';
echo mysql_error();
}
?>
Ik moet zeggen je omschrijving is mega onduidelijk. Stel de vraag een simpel. Wat wil je doen?
Data ophalen?
Data weergeven?
Wees duidelijk in je omschrijving!
Kolom1|Kolom 2
naam1 | Alle tekst in naam 1
naam2 | Alle tekst in naam 2
naam3 | Alle tekst in naam 3
Ik heb in mn query alles van kolom 1 en kolom 2 geselecteerd.
Nu wil ik ergens in mijn php code alle tekst in kolom 2 van "naam3" laten weergeven.
Hoe laat ik dat doen zonder daar een aparte query van hoeven te maken?
Gewijzigd op 26/10/2010 19:31:59 door thuron thuron
Door je query aan te passen. Zie Milo's voorbeeld.
Edit: En aan de hand daarvan kijken wat er in die rij in het veld van de andere kolom staat?
Gewijzigd op 26/10/2010 22:16:29 door thuron thuron
iemand?...
Gewijzigd op 28/10/2010 17:52:36 door Milo S
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
// errors
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
// sql debug
define('DEBUG_MODE',true);
function showSQLError($sql,$error) {
echo '<pre>Error: '.$error.'<br />'.$sql.'</pre>';
}
// start script
$sql = "SELECT *
FROM tabel
WHERE kolom1='".mysql_real_escape_string( $_GET['id'] )."'";
if (($result = mysql_query($sql)) === false) {
// foutafhandeling
echo 'Fout met database.';
if (DEBUG_MODE) {
showSQLError($sql,mysql_error());
}
}
else {
$res = mysql_fetch_assoc($result);
echo $res['kolom2']
}
?>
// errors
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
// sql debug
define('DEBUG_MODE',true);
function showSQLError($sql,$error) {
echo '<pre>Error: '.$error.'<br />'.$sql.'</pre>';
}
// start script
$sql = "SELECT *
FROM tabel
WHERE kolom1='".mysql_real_escape_string( $_GET['id'] )."'";
if (($result = mysql_query($sql)) === false) {
// foutafhandeling
echo 'Fout met database.';
if (DEBUG_MODE) {
showSQLError($sql,mysql_error());
}
}
else {
$res = mysql_fetch_assoc($result);
echo $res['kolom2']
}
?>
Toevoeging op 28/10/2010 17:55:23:
Thuron thuron op 26/10/2010 19:29:53:
Ok hier komt een voorbeeldje:
Kolom1|Kolom 2
naam1 | Alle tekst in naam 1
naam2 | Alle tekst in naam 2
naam3 | Alle tekst in naam 3
Ik heb in mn query alles van kolom 1 en kolom 2 geselecteerd.
Nu wil ik ergens in mijn php code alle tekst in kolom 2 van "naam3" laten weergeven.
Hoe laat ik dat doen zonder daar een aparte query van hoeven te maken?
Kolom1|Kolom 2
naam1 | Alle tekst in naam 1
naam2 | Alle tekst in naam 2
naam3 | Alle tekst in naam 3
Ik heb in mn query alles van kolom 1 en kolom 2 geselecteerd.
Nu wil ik ergens in mijn php code alle tekst in kolom 2 van "naam3" laten weergeven.
Hoe laat ik dat doen zonder daar een aparte query van hoeven te maken?
dat gaat niet met 1 query naar mijn weten
Gewijzigd op 28/10/2010 17:54:39 door Jasper DS
Wees concreet en duidelijk.
ik denk dat hij op verschillende plaatsten op zijn pagina tekst uit zijn db wilt halen. Volgens mij kan dat alleen met meerdere query's
Toevoeging op 29/10/2010 20:38:13:
ok met queries lijkt me een omweg. heb even geprutst met arrays, en kom er niet helemaal uit: Ik heb de query m'n 3 velden laten selecteren van de tabel. type, textid en text. Type gebruik ik om de verschillende type texten uit elkaar te houden. M'n query pakt nu alle info van 1 type. Hoe kan ik nu met een array zorgen dat ie alles zo pakt dat ik het kan gebruiken door mijn array te pakken en dan het id tussen de [] te zetten? Ik heb op internet wel algemene info gevonden over arrays en de werking ervan, maar er is bar weinig te vinden over arrays in combinatie met databases. Ik hoop dat iemand me kan helpen.
Groet
Bump
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$veld = array();
while( $rec = mysql_fetch_assoc($sql) )
{
$veld[$rec['veld1']][$rec['veld2']] = $rec['veld3'];
}
?>
$veld = array();
while( $rec = mysql_fetch_assoc($sql) )
{
$veld[$rec['veld1']][$rec['veld2']] = $rec['veld3'];
}
?>
Ik dacht zoiets ben hier geen held in, dus test het maar even :P...
er is geen 3de veld
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function showtext($messagetype,$messageid)
{
$textdb =& JFactory::getDBO();
$textquery = "
SELECT
".$textdb->nameQuote('kolom1').",
".$textdb->nameQuote('kolom2').",
".$textdb->nameQuote('kolom3')."
FROM ".$textdb->nameQuote('tabel')."
WHERE ".$textdb->nameQuote('kolom1')." = ".$textdb->quote($messagetype)." AND ".$textdb->nameQuote('kolom2')." = ".$textdb->quote($messageid)."
";
$textdb->setQuery($textquery);
$texttext = $textdb->loadObject();
echo $texttext->kolom3;
}
{
$textdb =& JFactory::getDBO();
$textquery = "
SELECT
".$textdb->nameQuote('kolom1').",
".$textdb->nameQuote('kolom2').",
".$textdb->nameQuote('kolom3')."
FROM ".$textdb->nameQuote('tabel')."
WHERE ".$textdb->nameQuote('kolom1')." = ".$textdb->quote($messagetype)." AND ".$textdb->nameQuote('kolom2')." = ".$textdb->quote($messageid)."
";
$textdb->setQuery($textquery);
$texttext = $textdb->loadObject();
echo $texttext->kolom3;
}
Nu kan ik makkelijk met
m'n berichten laten zien.
Hartelijk bedankt voor alle hulp!