Avatar billede esbenn Nybegynder
17. oktober 2009 - 22:47 Der er 10 kommentarer og
1 løsning

Intet i databasen

Hej.

Når jeg trækker noget ud fra databasen vil jeg gerne have en IF sætning der kan sige nogen lunde det her:

IF (datafindesikke) {
Blla
} ELSE {
Blaa
}

Men hvad hedder den funktion i PHP der tjekker om der er noget data?
Avatar billede nissen2630 Novice
17. oktober 2009 - 22:53 #1
Tror et godt sted at starte er her :
http://www.freewebmasterhelp.com/tutorials/phpmysql

Der et et lille kursus i PHP og MYSQL.
Avatar billede nissen2630 Novice
17. oktober 2009 - 22:59 #2
$username="brugernavn";
$password="kodeord";
$database="din-database";

mysql_connect(localhost,$username,$password);

$query="SELECT * FROM din-tabel";
$result=mysql_query($query);
$num=mysql_numrows($result);

if(!mysql_numrows($result))
{
echo "her er sørme data"
}
else
{
echo "her er INGEN data"
}

Sådan noget i den stil.kommer frit fra hukommelsen :-)
Avatar billede virtual1ty Nybegynder
17. oktober 2009 - 23:10 #3
nissen2630 >

Er det ikke det her du mener? ;-)

<div>if(mysql_num_rows($result)) // Udråbstegn fjernet i starten + underscore tilføjet imellem num og rows
{
echo "her er sørme data"
}
else
{
echo "her er INGEN data"
}</div>

mysql_num_rows returnerer jo false, hvis der ikke kommer noget ud fra databasen, hvorved den vil hoppe ned til else-blokken og skrive "her er INGEN data". Desuden er der ikke noget der hedder mysql_numrows som du skrev :-)
Avatar billede esbenn Nybegynder
17. oktober 2009 - 23:14 #4
Har prøvet både din version og den der er på den hjemmeside du foreslog, men begge uden held...
Min kode ser lige nu sådan ud:

<?php
$result_billede=$billede_post['meta_value'];
$num=mysql_numrows($result_billede);
IF (!mysql_numrows($result_billede)) {
    ?>
    <img src="wp-content/uploads/userphoto/non.jpg" />
    <?php
    }
    else
    {
    ?>
    <img src="wp-content/uploads/userphoto/<?php echo $billede_post['meta_value'];?>" />
<?php
}
?>

Fejlen er:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home3/esbennor/public_html/gbr/wp-content/themes/new/includes/user_list.php on line 18
Avatar billede virtual1ty Nybegynder
17. oktober 2009 - 23:16 #5
Ignorér forresten <div> og </div> i mit indlæg, det var et mislykket forsøg på at lave en kodeboks..
Avatar billede esbenn Nybegynder
17. oktober 2009 - 23:18 #6
Fungerer stadig ikke helt hos mig?!

<?php
$result_billede=$billede_post['meta_value'];
IF (mysql_num_rows($result_billede)) {
    ?>
    <img src="wp-content/uploads/userphoto/<?php echo $billede_post['meta_value'];?>" />
   
    <?php
    }
    else
    {
    ?>
    <img src="wp-content/uploads/userphoto/non.jpg" />
<?php
}
?>
Avatar billede virtual1ty Nybegynder
17. oktober 2009 - 23:22 #7
Det kan jeg da godt forstå det ikke gør. Du prøver at bruge en MySQL-funktion på en variabel, som intet har med MySQL at gøre :)

Du skal først sende en forespørgsel (query) til databasen:
$query = mysql_query("SELECT * FROM `billeder`");


Derefter kan du gøre følgende:
if(mysql_num_rows($query)) {
Avatar billede esbenn Nybegynder
17. oktober 2009 - 23:27 #8
Naah, det gør jeg sådan set ikke... Min forespørgsel er bare tidligere i filen...
Hvis du vil have det hele ser det sådan ud:

<?php
$fornavn = mysql_query("SELECT * FROM wp_usermeta WHERE meta_key='first_name' ORDER by meta_value ASC") or die(mysql_error());
while($fornavn_post = mysql_fetch_array($fornavn)){
$user_id=$fornavn_post['user_id'];
$efternavn = mysql_query("SELECT * FROM wp_usermeta WHERE meta_key='last_name' AND user_id='$user_id'") or die(mysql_error());
while($efternavn_post = mysql_fetch_array($efternavn)){
$billede = mysql_query("SELECT * FROM wp_usermeta WHERE meta_key='userphoto_image_file' AND user_id='$user_id'") or die(mysql_error());
while($billede_post = mysql_fetch_array($billede)){
$nick = mysql_query("SELECT * FROM wp_usermeta WHERE meta_key='nickname' AND user_id='$user_id'") or die(mysql_error());
while($nick_post = mysql_fetch_array($nick)){
?>
<div style="border:0px; width:250px; float:left;">
<table >
<tr>
<td valign="top">
<?php
$result_billede=$billede_post['meta_value'];
IF (mysql_num_rows($result_billede)) {
    ?>
    <img src="wp-content/uploads/userphoto/<?php echo $billede_post['meta_value'];?>" />
    <?php
    }
    else
    {
    ?>
    <img src="wp-content/uploads/userphoto/non.jpg" />
<?php
}
?>
</td>
<td valign="top">
<b>
<a href="?user=<?php echo $user_id;?>">
<?php echo $fornavn_post['meta_value'];?> <?php echo $efternavn_post['meta_value'];?>
</a></b><br />
<?php echo $nick_post['meta_value'];?>
</td>
</tr>
</table>
</div>
<?php
}
}
}
}
?>
Avatar billede dkfire Nybegynder
17. oktober 2009 - 23:46 #9
Tror du bliver nød til at forklare hvad du gerne vil med din kode.
Du har ALT for mange kald til databasen og alt for mange while-løkker.

Dernæst så fortæller php faktisk ude mærket hvad der er galt.
Din variabel $billede_post['meta_value'] er IKKE en mysql resource, det er der i mod data fra et felt i din database fra den opslag du lavede med "$billede = mysql_query("SELECT ....".

Du bør som en start gå igennem den tutorial som er skrevet i #1
Avatar billede dkfire Nybegynder
18. oktober 2009 - 00:11 #10
Men et forslag kunne være:

<?php
$fornavn = mysql_query("SELECT user_id, meta_value, meta_key FROM wp_usermeta WHERE meta_key='first_name' ORDER BY meta_value ASC") or die(mysql_error());

while($fornavn_post = mysql_fetch_array($fornavn)){
    $user_id=$fornavn_post['user_id'];
   
    $sql_string = "SELECT meta_value, meta_key FROM wp_usermeta WHERE user_id=$user_id";
    $query_result = mysql_query($sql_string) or die(mysql_error());
    $data = array();
    while($row = mysql_fetch_assoc($query_result)){
        $data[$row['meta_key']] = $row['meta_value'];
    }
?>
    <div style="border:0px; width:250px; float:left;">
    <table >
    <tr>
    <td valign="top">
    <?php
    if(isset($data['userphoto_image_file'])) {
        echo '<img src="wp-content/uploads/userphoto/'.$data['userphoto_image_file'].'" />';
    }
    else
    {
        echo '<img src="wp-content/uploads/userphoto/non.jpg" />';
    }
    echo '</td>
    <td valign="top">
    <b>
    <a href="?user='.$user_id.'">';
    echo $data['first_name']." ".$data['last_name'];
    echo '</a></b><br />'.$data['nickname'];?>
    </td>
    </tr>
    </table>
    </div>
    <?php
}
?>
Avatar billede esbenn Nybegynder
02. februar 2010 - 00:20 #11
Fik aldrig kigget på dit forslag, men problemet forsvandt... Vil du have dine point som tak for hjælpen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester