zoeken naar projectcode en wanneer aanwezig een pic tonen
ik heb een query aangemaakt om te tellen of in een tabel een record voorkomt met een bepaalde code. Als dit het geval is (de waarde is dus groter dan 0), dan moet een icoon getoond worden waarop geklikt kan worden. Dit lukt dus vooralsnog niet.
De query is deze (gemaakt met Dreamweaver):
Code (php)
1
2
3
4
5
2
3
4
5
mysql_select_db($database_conn_syn, $conn_syn);
$query_number = sprintf("SELECT COUNT(*) as 'number' FROM vo WHERE projectcode = %s", GetSQLValueString($colname_number, "text"));
$number = mysql_query($query_number, $conn_syn) or die(mysql_error());
$row_number = mysql_fetch_assoc($number);
$totalRows_number = mysql_num_rows($number);
$query_number = sprintf("SELECT COUNT(*) as 'number' FROM vo WHERE projectcode = %s", GetSQLValueString($colname_number, "text"));
$number = mysql_query($query_number, $conn_syn) or die(mysql_error());
$row_number = mysql_fetch_assoc($number);
$totalRows_number = mysql_num_rows($number);
En de code van het deel waarin de uitkomst van de query gebruikt wordt is dit:
Code (php)
1
<?php if ($query_number > 0) { ?><img src="beeld/knop-vo.jpg" alt="voorlopig ontwerp" name="vo" width="24" height="24" id="vo" onmouseover="MM_swapImage('vo','','beeld/knop-vo-licht.jpg',0)" onmouseout="MM_swapImgRestore()" /><?php ;} ?>
Hoe kan ik ervoor zorgen dat de icoon dus alleen getoond wordt wanneer de projectcode in de tabel voorkomt? Nu wordt de icoon nooit getoond...
Gewijzigd op 18/02/2011 12:40:10 door Bas IJzelendoorn
gebruik a.u.b. code-tags
- Aar - op 17/02/2011 23:00:29:
gebruik a.u.b. code-tags
????????
Ben geen php expert, weet niet wat je bedoelt...
Gewijzigd op 18/02/2011 12:22:13 door -- Marcel --
code] [/code], Ik heb het inmiddels al veranderd. [/modedit]
Dat is dit: [ waarom die sprintf?
Justin S op 18/02/2011 13:47:43:
waarom die sprintf?
Geen idee, is door Dreamweaver gegenereerd.
Er is geen enkele reden om dat af te raden.
Het doet denken aan de sql strings die je maakt voor pdo met prepared statements
http://www.phphulp.nl/php/tutorial/overig/pdo-verbinden-met-verschillende-databases/534/prepared-statements/1368/
Gewijzigd op 21/02/2011 14:42:30 door Kris Peeters
Hoe moet ik mijn code aanpassen zodat alles werkt zoals gewenst?
Hmm. Even mijn glazen bol opzoeken hoor. Lang niet gebruikt.
Bedoel je zoiets? Het is mij een beetje een onduidelijke vraag met een vreemd op elkaar gepropte code.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$sql = "
SELECT
*
FROM
vo
WHERE
projectcode = ".$projectcode."
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
if(mysql_num_rows($res) == 1)
{
?>
<a href="#"><img src="beeld/knop-vo.jpg" alt="voorlopig ontwerp" name="vo" width="24" height="24" id="vo" onmouseover="MM_swapImage('vo','','beeld/knop-vo-licht.jpg',0)" onmouseout="MM_swapImgRestore()" /></a>
<?php
}
?>
$sql = "
SELECT
*
FROM
vo
WHERE
projectcode = ".$projectcode."
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
if(mysql_num_rows($res) == 1)
{
?>
<a href="#"><img src="beeld/knop-vo.jpg" alt="voorlopig ontwerp" name="vo" width="24" height="24" id="vo" onmouseover="MM_swapImage('vo','','beeld/knop-vo-licht.jpg',0)" onmouseout="MM_swapImgRestore()" /></a>
<?php
}
?>
Je maakt het verwarrend voor jezelf.
Traditioneel doet men zo-iets:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = "SELECT id, naam, ...";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)) {
...
}
?>
$sql = "SELECT id, naam, ...";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)) {
...
}
?>
Zo weet je altijd waarmee je bezig bent:
$sql is de sql string
$res is een resource.
$row geeft je 1 record, in een array gegoten.
Bij jou:
$query_number
Wat is dat?
Eerst gebruik je die variabele om de sql sting in te steken.
Dan vraag je
if ($query_number > 0)
Een string die begint met 'SELECT COUNT...' zal nooit groter zijn dan 0
Hoe kan ik er dan voor zorgen dat het getal dat als resultaat van de query ontstaat, als variabele te gebruiken is?
Als getal moet er een 0 of een groter getal uitkomen, want dat is bepalend voor het wel of niet tonen van een icoon.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = sprintf(
"SELECT COUNT(*) as 'number' FROM vo WHERE projectcode = %s",
GetSQLValueString($colname_number, "text")
);
$res = mysql_query($query_number, $conn_syn) or die(mysql_error());
if ($row = mysql_fetch_assoc($number)) {
// $row['number'] geeft je nu aan hoeveel records deze code hebben
echo $row['number'];
}
?>
$sql = sprintf(
"SELECT COUNT(*) as 'number' FROM vo WHERE projectcode = %s",
GetSQLValueString($colname_number, "text")
);
$res = mysql_query($query_number, $conn_syn) or die(mysql_error());
if ($row = mysql_fetch_assoc($number)) {
// $row['number'] geeft je nu aan hoeveel records deze code hebben
echo $row['number'];
}
?>
Als ik de code precies zo overneem, krijg ik een foutmelding omdat de variabele $number niet is gedefinieerd, denk ik.
Als ik van $number, $res maak is er geen foutmelding meer, maar werkt het ook niet. Het aantal records wordt niet getoond en de icoon verschijnt niet.
Je moet niet zomaar de code overnemen. Je moet zelf denken en zelf schrijven.
Mijn idee was dat dit een site is voor dit soort vragen en dat men je graag helpt.
En zoals ik al eerder schreef: volgens mij stel ik een vrij eenvoudige vraag, die een beetje programmeurs zo oplost, ook al zijn de variabelen die gebruikt worden misschien niet zo logisch.
Kris, ik waardeer je hulp, we komen er vast wel uit.
@Marcel; Precies, wij zijn programmeurs en moeten het voor jouw oplossen? NEE zo werkt het niet, dan verwijs ik je graag door naar de vacature hoek. Het heet phpHULP, jij stelt de vraag, post de code en geeft aan wat er fout gaat en wij proberen je een duwtje in goede richting te geven tot jij post: "Probleem opgelost, bedankt voor de hulp"...
Probleem niet opgelost, bedankt voor de hulp...