Prüfen ob ein feld existiert?

hallo,
wie kann ich mit php prüfen ob (z.B.:) in der spalte 'id' die id-nummer 5 existiert?
gibts da so ne funktion wie bei dateien? ich wäre dankbar wenn ihr mir ein wenig unter die arme greift...
danke
mfg
 
Also eine direkte Funktion von PHP ist mir jetzt nicht bekannt, Du könntest es aber so machen:

PHP:
function checkField($needle)
{
      $query = mysql_query("SELECT `id` FROM table WHERE `id`='".$needle."' LIMIT 1;"); // Einfach per WHERE, fragen ob es eine id mit dem Wert von $needle gibt
      $count = mysql_num_rows($query); // wieviele Treffer gibt es
      if($count==1) // gab es einen Treffer dann true
      {
             return true;
      }
      else // sonst false
      {
            return false;
      }
      return false; // zur sicherheit immer false zurück 
}

// Der Aufruf der Funktion

if(checkField(5))
{
.....
}
else
{
.....
}

Man kann das ganze natürlich auch noch kürzen und ganz anders prüfen!
:D
 
ne das ganze hat sich erledigt, habs anders gemacht..
hab nun aber folgendes problem:
ich hab ne while schleife zum auslesen ner kompletten tabelle... nur bekomm ich nur den letzten eintrag wiedergegeben, und das so oft, wie einträge in der tabelle sind. hier der code
PHP:
include("gbsettings.php");
$i=0;
while ($i < $num) {
$i++;
//hier das was in der schleife wiedergegeben werden soll
}
//hier der dafür verantwortliche teil in der gbsettings.php
 $sql = "SELECT name, email, website, text, date, time FROM guestbook ORDER BY id DESC LIMIT 0,10"; 
 $query=mysql_query($sql);
 $num=mysql_num_rows($query);
 $name=mysql_result($query, $i, "name");
 $mail=mysql_result($query, $i, "email");
 $web=mysql_result($query, $i, "website");
 $text=mysql_result($query, $i, "text");
 $date=mysql_result($query, $i, "date");
 $time=mysql_result($query, $i, "time");
bitte helft mir.. danke
 
liegt daran, dass in der Schleife nur $i++ steht!
Wenn du den Rest in die Schleife nimmst überschreibst du allerdings deine Werte
gleich wieder, also sollte die Ausgabe auch in die Schleife.

aber sonst hat er genau gemacht was du ihm gesagt hast :D
 
nu habsch nen weiteres prob. und zwar diese fehlermeldung:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 4 on MySQL result index 3 in C:\Programme\xampp\htdocs\Tobias\guestbuch\gbsettings.php on line 26

wie schaff ich es, das wenn er da irgend ne zahl (also die id) nicht findet, einfach zur nächsten springt und dann weitermacht??
danke
 
das hat dir im Prinzip Basic_Avid bereits erklärt.
Frag einfach nur vorhandene Einträge ab!
Im übrigen sind das Grundlagen und keine Probleme.
Lies doch mal ein gutes Buch dazu!

Gruss
 
Kleiner Tipp am rande:

Mach es doch so!
PHP:
while($treffer = mysql_fetch_array($query))
{
     // Und hier kannst Du Deine Ausgabe / Verarbeitung machen
     // Mit mysql_fetch_array bekommst Du ein assoziatives Array zurück
    // Welches Du dann so ansprechen kannst
    echo $treffer['id'];
   
}

Du brauchst dann nicht mehr mit einem normalen Index herum zu spielen, sondern kannst die Werte über den SQL-Spaltennamen ansprechen.
Und Du brauchst Dir auch keine sorgen mehr zu machen dass Du eine Fehlermeldung bekommst wegen eines falschen Index wertes.
 
kannst mir ma kurz die funktion der variable $treffer erklären?
bin noch bissi neu in dem gebiet (des is meine erste whileschleife *hehe*).
was muss $treffer für nen wert haben?
danke
 
Also, die Funktion mysql_fetch_array() liefert Dir ein assoziatives Array zurück.
Die Variable $treffer ist keine Variable sondern ein Array und braucht keinen Wert.


Du hast z.B. folgende Tabelle in Deiner DB:
----------------------------
|ID | NAME | DATUM |
----------------------------
| 1 |Karl | 12345 |
----------------------------
| 2 |Sepp | 23456 |
----------------------------

Dann liefert Dir mysql_fetch_array() folgendes Array:

array('ID' => 1,
'NAME' => "Karl",
'DATUM' => 12345)

Wenn Du nun auf den Wert zugreifen willst kannst Du es so machen array['ID'].
Das Array $treffer brauchst Du nicht vorbelegen.
Die Whileschleife läuft solange kein Eintrag mehr in der Tabelle vorhanden ist, mysql_fetch_array() liest immer eine Zeile aus der Tabelle und speichert die Werte in dem assoziativen Array ab, in der Whileschleife kannst Du mit den Daten machen was Du willst. Falls Du alle Werte in einem Array haben willst musst in der Whileschleife die aktuellen Werte in ein anderes Array schreiben.

Wenn ich richtig gesehen habe willst Du ein Gästebuch machen oder!?

Ich hoffe mal es ist verständlich. :D
 
Das Array von mysql_fetch_array besitzt normalerweise auch nen numerischen index, also bei denner Tabelle säh das so aus:

$treffer = array{
'ID' => 1,
'NAME' => "Karl",
'DATUM' => 12345,
0 => 1,
1 => "Karl",
2 => 12345}
 
Zurück
Oben