webForumDet fria alternativet

Skriva ut text när databasen är tom

PHP

30 svar · 1 420 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#1

Kommer ej på hur man ska göra när man vill att det ska skrivas ut en text när man inte har något i databasen i tabellen typ det finns inga inlägg

/Emil W

Medlem sedan juni 20006 031 inlägg
#2

Kontrollera svaret från databasen med mysql_num_rows().
Om resultatet är 0 visar du ett meddelande typ "Inget att visa..." annars visar du resultatet.

Medlem sedan feb. 2003173 inlägg
#3

Kan man använda denna i en if-sats, där jag vill hoppa över en
ledtext samt fältinnehåll om fältet inte blivit ifyllt?

Medlem sedan juni 20006 031 inlägg
#4

Nej. mysql_num_rows returnerar bara antalet rader från din query.

Medlem sedan feb. 2003173 inlägg
#5

OK. Jag söker funktionen som känner av om fältet är ifyllt.
Då skall ledtext och fältinnehåll skrivas.
Annars hoppa ner till nästa fältfråga.
Borde vara en if - else kombination men.... ?

Medlem sedan juni 20006 031 inlägg
#6

Kolla på funktionen empty()

Medlem sedan feb. 2003173 inlägg
#7

Men oj då - varför inte bara gå på echo bara om fältet är ifyllt?
Visst borde det finnas en såda funktion, LR?

Medlem sedan juni 20006 031 inlägg
#8

Vet inte exakt vad han har tänkt sig. Men om han inte vill visa någon data där ett visst fält är tomt så tar man det i sin sql fråga.

WHERE fältet != ''
Medlem sedan feb. 2003173 inlägg
#9

Jag tänkte så här.
Medlemmarna presenterar sig via ca 10 fält i tabellen,
men alla fylleer inte i alla fält. Om en post inte har fält X ifyllt,
vill jag inte att ledtexten för fältet och platsen för detta (raden)
skrivs ut utan hoppas över så att nästa fält med sin ledtext och
fälinnehåll skrivs. Klarare nu kanske. Det är lätt att vara otydlig!

Medlem sedan dec. 2004736 inlägg
#10
if (!empty($var))
{
 echo "Text:"
 echo $var;
}
Medlem sedan juni 20006 031 inlägg
#11

Då får du använda if-satser

if(!empty($row['fält']))
{
     // printa ut det du ska visa
}

Observera att empty() returnerar true ibland även om fältet inte är tomt.

php manualen skrev:

The following things are considered to be empty:

\* "" (an empty string)
\* 0 (0 as an integer)
\* "0" (0 as a string)
\* NULL
\* FALSE
\* array() (an empty array)
\* var $var; (a variable declared, but without a value in a class)

/red
Ledel hann visst före :)

Medlem sedan feb. 2003173 inlägg
#12

Vill ändå inte

<?php
            if(!empty($row['omo']))
{
	<b>Om oss:</b><br>

	<div class="brodtext"><?php print ($myrow["omo"]);?><br>
}
	<?php
	}
	?>

Får fel på raden <b>Om ....

Jag vill allstå att inget printas om "omo" fältet är tomt,
utan detta hoppas över.

Medlem sedan juni 20006 031 inlägg
#13
<?php
if(!empty($row['omo']))
{
    echo '<b>Om oss:</b><br>';

    echo '<div class="brodtext">$myrow["omo"])<br>';
    // ska du stänga din div också här kanske?
}
?>

Du måste öppna/stänga php taggarna när du växlar mellan html och php eller köra echo på html koden också.

Medlem sedan feb. 2003173 inlägg
#14

Jag blir alltid lika rörd över wf:s alla hjälpsamma - troligen unga - medlemmar
som visar oss lite mer okunniga stort tålamod och sen delar med sig av sin kunskap!
Stort tack Pedda & Ledel. Nu lirar det perfekt!
Och jag har läst på i PHP.net, så jag somnar lite klokare i dag.

Medlem sedan feb. 2003173 inlägg
#15

Jag tyckte att att allt funkade igår kväll, men inte nu?
Min kod ser ut så här:

			<tr><td >
			<?php
				if(!empty($row['omos']))
			{	echo	'';	
				echo	'<b>Om oss:</b>';
		}
				?>
				</td><td>
			<?php
				if(!empty($row['omos']))
			{	echo	'';	
				echo	'($myrow["omos"])';
		}
				?>	
		  		</td></tr>
			<tr><td >

Får inte något felmeddelande, men inte heller något skrivet, vara sig fältet "omos" är ifyllt eller ej.

Medlem sedan juni 20006 031 inlägg
#16

Du kollar om $row['omos'] innehåller något och sen kallar du den $myrow["omos"]
$row eller $myrow? Vilken är rätt?

Medlem sedan feb. 2003173 inlägg
#17

Har kollat att fältet är helt tomt.
Har använd genomgående "$myrow" men också genomgående "$row"

Har det någon betydelse att det inne i en tabellcell?
Borde inte betyda något.
Kan man använda samma frågeutval fler gånger?

Medlem sedan feb. 2003173 inlägg
#18

Beträffande myrow och row vet jag inte vad som är rätt och/eller fel.
Jag gick lite på Ditt svar inlägg nr 13, Pedda.

Medlem sedan juni 20006 031 inlägg
#19

När jag skrev $row så var det bara ett exempel. Om din query sparas i $myrow så är det den du ska använda.

<?php
if(!empty($myrow['omos']))
{
     echo '<tr><td >\n';  
     echo '<b>Om oss:</b>\n';
     echo '</td><td>\n';
     echo '($myrow["omos"])\n';
     echo '</td></tr>\n';
}
?>
<tr><td >
Medlem sedan feb. 2003173 inlägg
#20

OK - miss av mig. Och jag trodde att "if(!empty($myrow['omos'])) "
räckte som urvalsätt, men jag måste göra en särskild query.

Nu har jag ca 7 fält som kan vara ifyllda eller tomma.
Då måste jag om jag förstår rätt göra en query för var fält?
Dessutom börjar jag med ett urval för att på sidan bara jobba med en post
Så här ser min query ut

<?php
	include("connect.php");
	global $adminid;
	global $medlemsid;
	global $id;
	$result = mysql_query("SELECT * FROM Artikel, Admin WHERE Artikel.adminid = Admin.adminid AND medlemsid = $medlemsid");
	$myrow = mysql_fetch_array($result);
?>

Då skall jag inom "$result" alt "$myrow" göra urvalen som kollar om respektive
fält är tomt eller ifyllt. Resultatet skall vara att inget skrivs - HTML-genererad
ledtext eller radbyte - om fältet är tomt utan bara rader där fält är ifyllda printas.

Är jag rätt ute - LR helt ute? :OO

266 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)